2017-09-03 2 views
0

私はログイン時に投稿する機能を持つアプリケーションを作成しています。私は次のテストコードをmochaに書いています。 )私は(私が行って使用して、いくつかのミスを犯したと思うdone()は、スーパーエージェントリクエスト内で呼び出されません。

Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

:私はこのエラーを取得します。他のすべてのアサート文は成功しています。私がどこに間違っているのか、もっと情報が必要な場合は教えてください。

あなたのテストを実行するために2秒以上を取る可能性があります
it("Login and post", function(done) { 
    superagent 
     .post(URL_ROOT + "/register") 
     .send({ 
      email: "[email protected]", 
      password: "posttest" 
     }) 
     .end(function(err, res) { 
      assert.ifError(err); 
      var token = res.body.token; 
      superagent 
       .post(URL_ROOT + "/post") 
       .send({ 
        content: "testing post", 
        user: jwt.decode(token).id 
       }) 
       .set("Authorization", "test_scheme " + token) 
       .end(function(err, res){ 
        assert.ifError(err); 
        assert.equal(res.body.post.content, "testing post"); 
        done(); 
       }); 
     }); 
}); 

答えて

0

itへのコールバックの最初の行で、右superagent .post(URL_ROOT + "/register")...前にこの行を追加します。

this.timeout(30000)

これはあなただけですることができます30秒後にタイムアウトします。

関連する問題