【问题标题】:How can I mock nested function with Jasmine& Angular如何使用 Jasmine 和 Angular 模拟嵌套函数
【发布时间】:2021-06-18 00:12:27
【问题描述】:
constructor(private searchService: SearchService, private storageService: StorageService) { 
this.searchService.pagesOutput.subscribe(images => {
  this.images = images;
  this.pages = this.searchService.numberOfPages;
  
})

}

我有一个服务作为依赖注入。我想模拟它进行测试。 我知道如何模拟服务和一些方法

 searchServiceMock = jasmine.createSpyObj('SearchService', ['pagesOutput']);
 searchServiceMock.pagesOutput.and.returnValue(someValue)

但我怎样才能访问嵌套函数?(searchServiceMock.pagesOutput.subscribe?)

【问题讨论】:

    标签: javascript angular unit-testing mocking jasmine


    【解决方案1】:

    由于您将订阅该值,因此如果您返回一个可观察对象,则订阅将起作用。为了模拟 observable,我使用 of

    import { of } from 'rxjs';
    ...
    searchServiceMock = jasmine.createSpyObj('SearchService', ['pagesOutput']);
    searchServiceMock.pagesOutput.and.returnValue(of(/* whatever value you want to be for images in subscribe callback */))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-04
      • 2016-06-25
      • 2020-03-21
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多