【问题标题】:How to cover IF/ELSE condition with Angular 4 Jasmine unit test case如何使用 Angular 4 Jasmine 单元测试用例覆盖 IF/ELSE 条件
【发布时间】:2018-05-24 19:55:23
【问题描述】:

帮助我覆盖 IF/Else 覆盖范围和返回 HTTP 响应的方法以及构造函数以覆盖 Jasmine 单元测试用例的路由器和 Appconfig 服务的分支覆盖范围

【问题讨论】:

    标签: angular jasmine karma-jasmine angular4-router angular4-httpclient


    【解决方案1】:

    您可以使用 MockBackend 模拟 http 响应 参考:https://angular.io/api/http/testing/MockBackend

    您可以轻松定义自己的响应并测试所有 if/else

    // before each test 
    beforeEach(() => {
        this.injector = ReflectiveInjector.resolveAndCreate([
          {provide: ConnectionBackend, useClass: MockBackend},
          {provide: RequestOptions, useClass: BaseRequestOptions},
          Http,
          // other dependencies like Router / AppConfig
        ]);
        this.authenticationService = this.injector.get(AuthenticationService);
        this.backend = this.injector.get(ConnectionBackend) as MockBackend;
        this.backend.connections.subscribe((connection: any) => this.lastConnection = connection);   
    });
    
    
    // in your test
    const mockErrorResponse = {status: 200};
    this.lastConnection.mockRespond(new Response(new ResponseOptions({body: JSON.stringify(mockErrorResponse)})));
    tick();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-08
      • 2021-10-03
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多