【问题标题】:subscribe service method not covering in unit test case jasmine单元测试用例 jasmine 中未涵盖的订阅服务方法
【发布时间】:2019-03-05 09:13:29
【问题描述】:

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

当我用

进行测试时
ng test --code-coverage true

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

npm run sonar-scanner

有人可以帮忙吗?

【问题讨论】:

  • 请不要张贴代码图片,而是复制粘贴到这里

标签: unit-testing jasmine angular6 karma-jasmine


【解决方案1】:

创建一个模拟服务并将其作为提供者注入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 将用我们的MockService 替换您的service 组件,其中我们使用of() 返回一个可观察对象

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 2020-03-15
    • 2020-09-27
    • 2023-03-17
    • 1970-01-01
    • 2021-08-19
    相关资源
    最近更新 更多