如何在回调函数中测试API调用的响应

时间:2018-03-15 14:35:34

标签: javascript google-chrome-extension jasmine

我想测试一个接受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'。

2 个答案:

答案 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'})