Angular 2 订户错误的业力单元测试
Angular 2 karma unit test for subscriber error
虽然 运行 代码覆盖率测试,但我注意到我没有涵盖订阅者函数的错误处理。
要测试的功能:
getVersion() {
return this.aboutService.getAPIVersion()
.subscribe(
info => {
console.log('info', info);
},
error => {
console.log('error', error);
}
);
}
这是组件中的函数,它正在从服务中调用函数。我设法使用 mockBackend abd MockError 为来自服务的函数编写了单元测试,但我不知道如何使用 wrapper(caller) 函数来做到这一点。
到目前为止,我用 class 模拟了服务,但我只涵盖响应而不是错误:
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)));
}
}
我有同样的场景,我需要为一个测试用例测试错误用例(为了代码覆盖率)。我遵循的方法是
1.Get测试注入的服务如下
aboutService = fixture.debugElement.injector.get(AboutService);
2.Now 使用
覆盖方法
aboutService.getAPIVersion = () => Observable.throw('error');
所以对于这个特定的测试,该方法已被覆盖。
确切的代码可能不起作用,这是我记得的事情。
虽然 运行 代码覆盖率测试,但我注意到我没有涵盖订阅者函数的错误处理。 要测试的功能:
getVersion() {
return this.aboutService.getAPIVersion()
.subscribe(
info => {
console.log('info', info);
},
error => {
console.log('error', error);
}
);
}
这是组件中的函数,它正在从服务中调用函数。我设法使用 mockBackend abd MockError 为来自服务的函数编写了单元测试,但我不知道如何使用 wrapper(caller) 函数来做到这一点。
到目前为止,我用 class 模拟了服务,但我只涵盖响应而不是错误:
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)));
}
}
我有同样的场景,我需要为一个测试用例测试错误用例(为了代码覆盖率)。我遵循的方法是 1.Get测试注入的服务如下
aboutService = fixture.debugElement.injector.get(AboutService);
2.Now 使用
覆盖方法aboutService.getAPIVersion = () => Observable.throw('error');
所以对于这个特定的测试,该方法已被覆盖。 确切的代码可能不起作用,这是我记得的事情。