Ecmascript 6 如何使用茉莉花测试superagent承诺?

Ecmascript 6 如何使用茉莉花测试superagent承诺?,ecmascript-6,jasmine,vue.js,superagent,Ecmascript 6,Jasmine,Vue.js,Superagent,我将VueJS 2.0与SuperAgent一起使用,以创建API客户端连接器。我正在为我的API测试覆盖率,在测试SuperAgent方法本身时遇到了麻烦。我需要知道如何在superagent请求中监视我的私有方法: 到目前为止,我的SuperAgent请求是这样的: // Importing superagent as request import request from 'superagent'; if (['get', 'head'].includes(method)) { re

我将VueJS 2.0与SuperAgent一起使用,以创建API客户端连接器。我正在为我的API测试覆盖率,在测试SuperAgent方法本身时遇到了麻烦。我需要知道如何在superagent请求中监视我的私有方法:

到目前为止,我的SuperAgent请求是这样的:

// Importing superagent as request
import request from 'superagent';

if (['get', 'head'].includes(method)) {
  return request[method](this.Url(path, opts))
  .set(getHeader())
  .query(params)
  .then(handleSuccess, handleError);
}

return request[method](this.Url(path, opts))
.set(getHeader())
.query(params)
.then(handleSuccess, handleError);
这是在条件中的,因为,否则,如果HTTP方法不是GET或HEAD,则不会传递查询(params)(因为在这种情况下不需要它)

问题1:为了知道我的承诺是否得到了成功的回应,我如何监视superagent?即使我没有使用superagent的promise(因为我使用的是then()而不是end()),我仍然需要监视superagent请求

问题2:如何检查superagent实例(请求)是否调用了query()方法

测试用例1(使用茉莉花):

测试用例2:

it('should call the success callback if the response code is between 200 and 299');

有什么想法吗?

例如,检查
superagent mock
。或者您可以直接存根
请求
方法并返回模拟对象(它应该与真正的superagent对象具有相同的方法链)。我不建议监视真实请求。例如,检查
superagent mock
。或者您可以直接存根
请求
方法并返回模拟对象(它应该与真正的superagent对象具有相同的方法链)。我不建议监视真正的请求。
it('should call the success callback if the response code is between 200 and 299');