8

Mocha を使用して Node API のテストを作成しています。1 つのテストで、2 つのアクションを実行し、それぞれのタイムスタンプを比較して、それらが異なることを確認する必要があります。そのためには、テストの実行を少なくとも 1 秒間確実に一時停止する必要があります。setTimeoutへの2回目の呼び出しの前にモカの実行を一時停止するために使用しようとしていましpingたが、それは起こっていません。

it( 'should insert then update the timestamp.', function( done ) {
  Do.ping( 'arg1', function( err, result ) {
    should.not.exist( err );

    setTimeout( Do.ping( 'arg1', function( err, result ) {
      // Test that the timestamp of the first ping is before the timestamp
      // of the second ping (among other things)
      done();
    }), 1000 );
  });
});

私がここでぶち壊したものを見た人はいますか?あるいは、私がやろうとしていることを行うためのより良い(つまり、よりモカっぽい)方法はありますか?

4

3 に答える 3

1

最終的に Sinon の偽のタイマー API を使用しましたが、うまく機能しています。beforeEach()それぞれとで偽のタイマーをインスタンス化し、リセットしafterEach()ます。実際のテストでは、必要な方法で時計を進めるだけです。

clock.tick( 180000 ); // Advances the JS clock 3 minutes (180 seconds)
于 2013-08-01T17:03:28.407 に答える