Unit testing 订阅服务方法未包含在单元测试用例jasmine中

Unit testing 订阅服务方法未包含在单元测试用例jasmine中,unit-testing,jasmine,angular6,karma-jasmine,Unit Testing,Jasmine,Angular6,Karma Jasmine,我正在尝试为subscribe方法编写测试用例。 当我用 ng test --code-coverage true 测试用例正在通过,但代码覆盖率报告中未涵盖subscribe方法 npm run sonar-scanner 有人能帮忙吗?创建一个模拟服务,并将其作为提供者注入组件中。spec.ts: import { of } from 'rxjs'; export class MockService{ validate(){ return of() } quer

我正在尝试为subscribe方法编写测试用例。

当我用

ng test --code-coverage true
测试用例正在通过,但代码覆盖率报告中未涵盖subscribe方法

npm run sonar-scanner

有人能帮忙吗?

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

返回一个可观察的值。请不要发布代码图像,而是复制粘贴到此处。请不要发布代码图像,而是复制粘贴到此处