订阅服务方法不包含在单元测试用例茉莉花中

问题描述 投票:1回答:1

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

当我测试时

ng test --code-coverage true

测试用例正在传递,但在代码覆盖率报告中,订阅方法未涵盖

npm run sonar-scanner

任何人都可以帮忙吗?

unit-testing jasmine angular6 karma-jasmine
1个回答
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()返回一个可观测量

© www.soinside.com 2019 - 2024. All rights reserved.