angular - 如何在 TypeScript 中测试 void 方法?
问题描述
我想用 void 方法测试一些代码。我有这样的代码,我对测试很困惑,我不知道这个测试。我用 Jasmine 和 Karma 做测试
getMenu(): void {
this.service.getMenuItems()
.subscribe(navigation => {
this.navigationModel = navigation.menu;
});
}
这是代码。我如何测试这段代码。我搜索了所有相同的问题,但我不明白。
解决方案
理想情况下,您应该this.service.getMenuItems()
在服务测试中测试实际功能。在这种情况下,您可以模拟函数响应并监视服务函数。您需要做的就是检查您navigationModel
的值是否是您的 methodSpy 返回的值。
例子:
const mockData = { navigationMenu: [.....]};
//inside beforeEach
const service= TestBed.get(NavigationService);
spyOn(service, 'getMenuItems').and.returnValue(
mockData.navigationMenu
);
推荐阅读
- java - 如何在同一行中同时打印 bool 和 double?
- javascript - 如何在页面上只获取我感兴趣的 HTML?
- angular - 在 Angular 8 组件中切换 MatSlideToggle
- javascript - 在链接构造函数中使用“this”
- python - Pandas 滚动函数加值
- windows - 将 Docker 容器中的文件夹与本地计算机上的文件夹连接 - 权限被拒绝
- python - 使用相邻单元格中的名称保存 excel 中的图像
- c++ - C(++) 短减 short = int?
- javascript - 如何使用 AsyncStorage 在 React Native 中保存我的登录凭据?
- python - 如何获得漂亮的汤功能以从下一页获取 URL