笑话存根不会更改假存储库的状态

问题描述

我正在尝试存根我的存储库。

我的数据库被字符串数组伪造了。

我希望在我的代码调用repository.saveJobOfferIntoBookmarks时用一个新条目填充该数组,但是似乎什么也没发生。

使用此代码更加清楚。

describe('saveJobOfferIntoBookmarks',() => {
    it('should save given job offer into bookmarks',async () => {
      let fakeAllBookmarks = ['Sales associate','Crew member','Barista']
      const jobOfferToBeSaved = { id: 2,job: 'Captain' }

      repository.saveJobOfferIntoBookmarks = jest.fn(jobOfferId => {
        console.log(jobOfferId)
        if (jobOfferId === jobOfferToBeSaved.id)
          fakeAllBookmarks.push(jobOfferToBeSaved.job)
        return Promise.resolve(2)
      })

      console.log(fakeAllBookmarks)
      repository.getAllBookmarkedJobOffers = jest.fn(() => {
        return Promise.resolve(fakeAllBookmarks)
      })

      const candidateId = 614
      const jobOfferId = 2
      const retrievedBookmarks = await service.getAllBookmarkedJobOffers(
        candidateId
      )
      console.log(retrievedBookmarks)
      expect(retrievedBookmarks).toStrictEqual([
        'Sales associate','Barista','Captain',])
      expect(repository.saveJobOfferIntoBookmarks).toHaveBeenCalledWith(
        candidateId,jobOfferId
      )
    })
  })

这是控制台测试结果:

● BookmarksService › saveJobOfferIntoBookmarks › should save given job offer into bookmarks

    expect(received).toStrictEqual(expected) // deep equality

    - Expected  - 1
    + Received  + 0

      Array [
        "Sales associate","Crew member","Barista",-   "Captain",]

      65 |       )
      66 |       console.log(retrievedBookmarks)
    > 67 |       expect(retrievedBookmarks).toStrictEqual([
         |                                  ^
      68 |         'Sales associate',69 |         'Crew member',70 |         'Barista',at Object.<anonymous> (bookmarks/bookmarks.service.spec.ts:67:34)

  console.log
    [ 'Sales associate','Barista' ]

      at Object.<anonymous> (bookmarks/bookmarks.service.spec.ts:56:15)

  console.log
    [ 'Sales associate','Barista' ]

      at Object.<anonymous> (bookmarks/bookmarks.service.spec.ts:66:15)

存根中的console.log()似乎也没有被触发。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)