【发布时间】:2015-07-09 08:08:33
【问题描述】:
我在测试中无法完全覆盖,我试图在我正在测试的函数中点击回调函数。这是函数:
CrowdControl.prototype.get = function() {
var options = this.optionsFor('GET');
return q.Promise(function(resolve, reject) {
function callback(error, response, body) {
if (error) {
reject(error);
} else {
resolve(body);
}
}
request(options, callback);
});
};
所以除了函数回调之外,我已经覆盖了函数:
function callback(error, response, body) {
if (error) {
reject(error);
} else {
resolve(body);
}
}
我似乎无法弄清楚如何通过测试来解决这个问题。
上面我有这样的请求被删除
var request = sinon.stub();
beforeEach(function() {
CrowdControl = rewire('crowdcontrol');
CrowdControl.__set__({
request: request
});
});
所以我不确定如何让它触发回调并对其进行测试。可以使用一些见解,因为这对我来说仍然是新的。谢谢!
所以我一开始是在尝试一个简单的测试,像这样 -
it("should call callback function.", function() {
crowdControl.get();
//callback should fire?
expect(callback).to.have.been.called;
});
【问题讨论】:
标签: javascript unit-testing sinon chai