我正在尝试存根我的存储库。
我的数据库被字符串数组伪造了。
我希望在我的代码调用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',
'Crew member',
'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', 'Crew member', 'Barista' ]
at Object.<anonymous> (bookmarks/bookmarks.service.spec.ts:56:15)
console.log
[ 'Sales associate', 'Crew member', 'Barista' ]
at Object.<anonymous> (bookmarks/bookmarks.service.spec.ts:66:15)
存根中的console.log()
似乎也没有被触发。