これを非同期でテストするにはどうすればよいですか?
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() を呼び出すかわかりません。