首页 > 解决方案 > 如何在 TypeScript 中测试 void 方法?

问题描述

我想用 void 方法测试一些代码。我有这样的代码,我对测试很困惑,我不知道这个测试。我用 Jasmine 和 Karma 做测试

getMenu(): void {
    this.service.getMenuItems()
    .subscribe(navigation => {
      this.navigationModel = navigation.menu;
    });
  }

这是代码。我如何测试这段代码。我搜索了所有相同的问题,但我不明白。

标签: angulartestingjasminekarma-jasmine

解决方案


理想情况下,您应该this.service.getMenuItems()在服务测试中测试实际功能。在这种情况下,您可以模拟函数响应并监视服务函数。您需要做的就是检查您navigationModel的值是否是您的 methodSpy 返回的值。

例子:

const mockData = { navigationMenu: [.....]};
//inside beforeEach
 const service= TestBed.get(NavigationService);
    spyOn(service, 'getMenuItems').and.returnValue(
          mockData.navigationMenu
        );

推荐阅读