【发布时间】:2018-02-14 15:07:37
【问题描述】:
在运行代码覆盖率测试时,我注意到我没有涵盖订阅者函数的错误处理。 测试功能:
getVersion() {
return this.aboutService.getAPIVersion()
.subscribe(
info => {
console.log('info', info);
},
error => {
console.log('error', error);
}
);
}
这是组件中的函数,它从服务中调用函数。我设法使用 mockBackend abd MockError 为服务中的函数编写单元测试,但我不知道如何使用 wrapper(caller) 函数来做到这一点。
到目前为止,我用类模拟了服务,但我只涉及响应而不是错误:
class AboutServiceStub {
getAPIVersion = jasmine.createSpy('getAPIVersion').and.callFake(
this.fakedGetAPIVersion
);
fakedGetAPIVersion() {
console.log('fakedGetAPIVersion');
return Observable.of(new Object(version))
.map(version => JSON.parse(JSON.stringify(version)));
}
}
【问题讨论】:
标签: angular unit-testing jasmine karma-runner observable