angular - 带有.subscribe误解的Angular UNIT测试方法
问题描述
我最近开始学习 Angular 测试,并面临对 UNIT 测试概念的误解。例如,我有一个带有 2 个按钮的对话框:确认删除和取消。当用户单击确认删除按钮时,将调用 http-service 方法并关闭对话框。听起来很简单。这是代码:
confirmDelete() {
this.httpService.delete(item)
.subscribe(() => this.dialogRef.close(),
(err) => this.message = 'Some text');
}
我对这个功能的测试是:
it('should call service delete method and close the dialog', async( () => {
spyOn(dialogRef, 'close'); // I have mockDialogRef;
component.confirmDelete();
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(deleteSpy.calls.any().toBe(true)); // Spy on delete method
expect(dialogRef.close).toHaveBeenCalled();
});
}));
它工作得很好。似乎是删除方法已被调用并且对话框已关闭。但我的问题是。我们应该在这些方法中测试什么?我们应该总是测试订阅方法中的东西还是只调用服务方法?如果服务器返回错误,我应该在这里测试吗?所以,..对不起愚蠢的问题,但我真的很困惑。希望你们能帮助我(
解决方案
推荐阅读
- sql - 创建键值对表
- python - 包含用于 collections.Counter 的相关方法
- azure-data-lake - 我们可以使用交互式集群从数据块在 adls2 之上创建外部表吗?
- python - 你怎么知道什么时候应该使用记忆?
- python - 如何处理 html 文件上的内存错误?
- azure - 如何配置 Azure CI/CD 以更新最新更改
- c# - C# 中的异步分块文件上传
- swiftui - Apple Watch 上的 SwiftUI NavigationView 在子视图中触发 onAppear 的多次调用
- java - 使用 java 将 JSONArray 转换为 csv
- javascript - 如何从 React 中的 Observable Map 中过滤?