如何使用sinon.js存根https.request response.pipe?

时间:2017-02-22 18:51:19

标签: javascript node.js unit-testing httprequest sinon

让我们说,我有这个简单的代码:

var https = require('https');
var options = {
  host: 'openshift.redhat.com',
  port: 443,
  path: '/broker/rest/api',
  method: 'GET'
};
var req = https.request(options, function(response) {
  console.log(response.statusCode);
  response.pipe(save stream to file with fs)
});
req.on('error', function(e) {
  console.error(e);
});
req.end();

嗯,我对sinon.js有点新意,我想问:如何存根response.pipe()? 当然,我可以为https.request创建存根并使用.on和.end返回一些东西,这很容易,但我不知道,如何使用正确的参数调用response.pipe()...(nodejs documentation说响应是回调) 在这种情况下,文档没有帮助! ofc测试env是mocha,也可以使用chai 请给我一些建议或例子。 谢谢,马特

1 个答案:

答案 0 :(得分:1)

从Sinon文档中,此内容已从v3.0.0中删除:

var stub = sinon.stub(object, "method", func);`

您应该使用:

stub(obj, 'meth').callsFake(fn)