我使用来自axios-mock-adapter
. 但是,我试图断言 get 函数已被有效调用,因此我创建了一个间谍。由于某种原因,它似乎不起作用,我得到:
expect(jest.fn()).toHaveBeenCalled()
Expected number of calls: >= 1
Received number of calls: 0
这是我的测试:
it('gets publications', async() => {
let spy = jest.spyOn(axios, "get");
var mock = new MockAdapter(axios);
mock.onGet(PUBLICATIONS_PATH + '/publications').reply(200,
{
answer: {
publications: [ "pub1", "pub2", "pub3" ]
}
});
let queryParameters = {
operation: 'FSale'
}
const publications = await PublicationService.getPublications(queryParameters);
expect(publications.data.answer.publications).toEqual([ "pub1", "pub2", "pub3" ]); // works fine
expect(spy).toHaveBeenCalled(); //This fails
})
我实际上是在尝试使用此处回答的方法。
更新:这是 getPublications 的代码
async function _getPublications(queryParameters){
return await axios({
method: 'get',
url: `${PUBLICATIONS_PATH}/publications`,
cancelToken: CancelTokenService.getSource().token,
params: queryParameters,
headers: {
authorization: LocalStorageService.getAuthorization(),
'Accept': ResourcesVersions.PUBLICATION
}
}).then(function (response){ return response }).catch(function (error){ return (axios.isCancel(error) ? error : error.response) })
}