promise を返すメソッド呼び出しをテストしようとしていますが、問題があります。これは NodeJS コードであり、Mocha、Chai、および Sinon を使用してテストを実行しています。私が現在持っているテストは次のとおりです。
it('should execute promise\'s success callback', function() {
var successSpy = sinon.spy();
mySpies.executeQuery = sinon.stub(databaseConnection, 'execute').returns(q.resolve('[{"id":2}]'));
databaseConnection.execute('SELECT 2 as id FROM Users ORDER BY RAND() LIMIT 1').then(successSpy, function(){});
chai.expect(successSpy).to.be.calledOnce;
databaseConnection.execute.restore();
});
ただし、このテストでは次のエラーが発生します。
AssertionError: expected spy to have been called exactly once, but it was called 0 times
プロミスを返すメソッドをテストする適切な方法は何ですか?