我想测试一个接受2个参数的异步API。第一个是要执行的操作字符串,第二个是回调函数。我想测试我在回调函数中作为参数得到的响应。
someApi('getName', (response) => {
// I want to test the response object.
console.log(response);
})
我可以测试API调用,如:
spyOn(window.someApi)
expect(someApi).toHaveBeenCalledWith('name_1', jasmine.any(Function))
//let mockResponse = {name:'name1'};
但我如何测试我是否得到正确的响应,如response.name ='name1'。
答案 0 :(得分:0)
试试这个
someApi('getName', (response) => {
// I want to test the response object.
if(response.name === 'name you want to match') {
//do something if it matches
}
else {
//do something if it doesn't match
}
})
答案 1 :(得分:0)
可以这样做:
const lastCall = someApi.calls.mostRecent();
const callback = lastCall.args[1];
callback({name:'name1'})
expect(someVariableWhichUsesThisResponse).toBe({name:'name1'})