15

NodeJS を使用したモカ テスト フレームワークを使い始めています。成功アサーションは正常に機能しますが、アサーションが失敗すると、テストがタイムアウトします。主張するために、私はShouldとExpectを試しました。例(非同期コード)

  it('should create new user', function(done){
    userService.create(user).then(function(model){
      expect(model.id).to.be(1); //created user ID
      done();
    }, done)
  });

ここで、モデル ID が 1 でない場合、失敗したアサーションを報告する代わりに、テストがタイムアウトします。私は何か間違ったことをしていると確信しています。あなたの助けに感謝。ありがとう!

4

3 に答える 3

18

ショーンの答えはうまくいきますが、もっと簡単な方法があります。

テストから Promise を返すと、Mocha がすべてを処理します。

it('should create new user', function() {
  return userService.create(user).then(function(model){
    expect(model.id).to.be(1); //created user ID
  });
});

コールバックは必要ありませんdone!

于 2015-04-23T17:59:10.940 に答える
0

done決して呼び出されないように見えます。以外にも、障害を処理するためにthenが必要になる場合があります。else

于 2013-08-15T03:20:48.863 に答える