问题描述
我正在尝试存根我的存储库。
我的数据库被字符串数组伪造了。
我希望在我的代码调用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 (将#修改为@)