茉莉花单元测试用例中未涵盖的订阅服务方法

时间:2019-03-05 09:13:29

标签: unit-testing jasmine angular6 karma-jasmine

我正在尝试为Subscribe方法编写测试用例。 code to check

当我用

测试时
ng test --code-coverage true

测试用例通过,但是在代码覆盖率报告中,订阅方法未涉及

npm run sonar-scanner

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

创建一个模拟服务,并将其作为提供者注入component.spec.ts中:

import { of } from 'rxjs';
export class MockService{

  validate(){
    return of()
  }

  queryUser(){
    return of({username: 'myUser'})
  }

}

然后注入

providers : [
  {provide: YourActualService , useClass: MockService}
]

然后将其测试为:

it('should initilize user name',()=> {
    component.token = "123";
    fixture.detectChanges();
    expect(component.uname).toBe('myUser')
})

useClass将用我们的service替换您的MockService组件,其中我们将使用of()返回一个可观测对象