我有一个名为“ api”的模块。它是具有定义的拦截器的axios对象,如下所示:
import axios from 'axios'
import VueCookie from 'vue-cookie'
const api = axios.create(...)
api.interceptors.response.use(config => { ... }, error => {
if (error.response.data.error === 'some-error') {
VueCookie.set('error', 'some-error')
}
})
export default api
现在,我想检测是否已使用“错误”和“某些错误”调用VueCookie设置方法。如何在测试中做到这一点?
现在,我已经像下面那样模拟了VueCookie,但我不知道如何访问该模拟并在其上触发Expect()。toHaveBeenCalledWith()。以下解决方案不起作用。
const cookies = jest.mock('vue-cookie', () => {
return {
get: (key) => {
const cookies = {
timezone: 'Warsaw',
jwt: 'foo'
}
return cookies[key]
}
}
})
...
it('test', () => {
// calling interceptor
expect(cookies.set).toHaveBeenCalledWith('error', 'some-error')
})
致谢
答案 0 :(得分:0)
如果我正确理解,应该验证的不是cookies
对象的set
方法,而是cookies
对象。
所以我建议用
it('test', () => {
// calling interceptor
expect(cookies.set).toHaveBeenCalledWith('error', 'some-error')
})