【问题标题】:Jasmine test doesn't reach subscribeJasmine 测试未达到订阅
【发布时间】:2023-03-17 08:13:01
【问题描述】:

我正在尝试在 Jasmine 中编写单元测试,但在对话框打开后测试订阅时遇到问题。我的测试如下所示:

it('should open pop up', () => {
    const openDialogSpy = spyOn(component.dialog, 'open').and.returnValue({
        afterClosed: () => of(false)
    });

    component.onClickNewUser();

    const parameters= {
        id: 0,
        name: 'banana'
    };

    expect(openDialogSpy).toHaveBeenCalled();
    expect(component.dialog.open).toHaveBeenCalledWith(
        AddUserDialogComponent,
        {
            data: parameters 
        }
    );
});

它通过了,一切都很好。但是当我运行代码覆盖率时,我发现它没有达到订阅code coverage image

有没有办法让我也测试这部分??

【问题讨论】:

    标签: angular unit-testing testing jasmine


    【解决方案1】:

    filter(id => id) 正在阻止 of(false) 的发射,因为此过滤器只允许真实发射。

    要订阅,您可以返回of(true)

    const openDialogSpy = spyOn(component.dialog, 'open').and.returnValue({
            afterClosed: () => of(true) // change this from false to true
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 2018-12-27
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      相关资源
      最近更新 更多