如何以异步方式测试它?
it('Should test something.', function (done) {
var req = someRequest,
mock = sinon.mock(response),
stub = sinon.stub(someObject, 'method');
// returns a promise
stub.withArgs('foo').returns(Q.resolve(5));
mock.expects('bar').once().withArgs(200);
request(req, response);
mock.verify();
});
这是测试的方法。
var request = function (req, response) {
...
someObject.method(someParameter)
.then(function () {
res.send(200);
})
.fail(function () {
res.send(500);
});
};
如您所见,我使用 node.js、Q(用于承诺)、用于模拟和存根的 sinon 以及 mocha 作为测试环境。由于请求方法的异步行为,上面的测试失败了,我不知道何时在测试中调用 done()。