是否可以使用 RXJS 强制特定的角度错误用于测试目的?
示例:
somerequest('http://myserversomewhere/endpoint').pipe(new Error(404, 'Endpoint Not Found'));
而不是在某处设置模拟服务器并构建整套错误以进行测试
答案 0 :(得分:1)
是的,您可以模拟错误,但首先您应该模拟您的服务提供者。举个例子:
import { throwError } from 'rxjs';
describe('Set of tests', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
providers: [
{ provide: MyService, useClass: FakeMyService }
],
}).compileComponents();
}));
it('My first test', () => {
myService = TestBed.get(MyService);
// HERE IS WHERE WE SHOULD MOCK A SERVICE' FUNCTION
spyOn(myService, 'myServiceFunction')
.and.returnValue(throwError(new Error(404, 'Endpoint Not Found')));
});
});
github 上的完整示例:here