等待后如何测试数据

我正在尝试添加一个测试来测试以下代码部分,但我不确定如何,因为输出显示60-109未发现行。它看起来像这样:


public async ngOnInit() {

  const data = await this.requestAppService.getData()

  this.tableModel =  { // Line 60

    ...this.tableModel,

    rows: data.map(

      /*

      * Map data

      */

    )

  }


  this.subscriptions.push(

    /* Add a subscription */

  )

  // Line 109

}

我正在使用的测试如下所示:


it('...', fakeAsync(() => {

  const spy = spyOn(component, 'ngOnInit').and.callThrough()

  component.ngOnInit()

  tick()

  expect(spy).toHaveBeenCalled()

}))

这只是我认为我应该如何测试它的猜测,但它似乎并没有涵盖所有内容。我也试过了callFake,也没用。


it('...', fakeAsync(() => {

  const spy = spyOn(component, 'ngOnInit').and.callFake(() => Promise.resolve())

  component.ngOnInit()

  tick()

  expect(spy).toHaveBeenCalled()

}))


哈士奇WWW
浏览 100回答 1
1回答

吃鸡游戏

问题在于spyOn声明。你在监视ngOnInit功能。您必须监视服务的 getData功能。requestAppService如下所示注入和使用实例,it('...', fakeAsync(() => {  const spy = spyOn(requestAppService, 'getData').and.callThrough()  component.ngOnInit()  tick()  expect(spy).toHaveBeenCalled()}))或者如果你想getData给你一些模拟data或promise,it('...', fakeAsync(() => {      const spy = spyOn(requestAppService, 'getData').and.callFake(() => {      return new Promise((resolve) => {        resolve(YOUR_OBJECT);      });      component.ngOnInit()      tick()      expect(spy).toHaveBeenCalled() })) 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript