使用 RXJS 进行角度管道测试

时间:2021-04-23 13:16:16

标签: angular testing rxjs

是否可以使用 RXJS 强制特定的角度错误用于测试目的?

示例:

somerequest('http://myserversomewhere/endpoint').pipe(new Error(404, 'Endpoint Not Found'));

而不是在某处设置模拟服务器并构建整套错误以进行测试

1 个答案:

答案 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