2017-05-26 3 views
0

私はユニットテストをしようとしています:マングースモデルチェーンユニットテスト(定期コールバック)

myModel.find({"id": someId}, callback) 
    .sort({timestamp: -1}) 
    .limit(100) 

私はしかし、私はに実行sinon-マングースを使用して、次の

myModel 
    .expects('find').withArgs({"id": 'def'}) 
    .chain('exec') 
    .yields(null, 'abc') 
    .chain('sort').withArgs({timestamp: -1}) 
    .chain('limit').withArgs(100); 

を思い付いdone関数が呼び出されておらず、テストがタイムアウトしたことを通知します。誰でもsinon-mongooseを使用してexecコールバックで定期的なコールバックをスタブする経験はありますか?

myModel.find({"id": someId} 
    .exec(callback) 
    .sort({timestamp: -1}) 
    .limit(100) 

ユニットテストの作品:私は私のモデルコードを変更した場合

。したがって、私はexecコールバックと通常のコールバックをスタブするのは問題だと思います。

答えて

0

次のように書いて問題を解決し、mongooseクエリテストのコールバックについて心配する必要はありません。

myModel 
    .expects('find').withArgs({"id": 'def'}) 
    .yields(null, 'abc') 
    .chain('sort').withArgs({timestamp: -1}) 
    .chain('limit').withArgs(100); 
関連する問題