2017-09-06 11 views
0
it('has working hooks', async() => { 
    setTimeout(() => { 
    console.log("Why don't I run?") 
    expect(true).toBe(true) 
    }, 15000) 

を一時停止していない。今冗談のsetTimeoutは私はすでにこの答え、冗談のドキュメント、およびいくつかのGitHubのスレッドを確認しましたところ、テスト

Disable Jest setTimeout mock

を、タイムアウト内部の機能は実行されません。 Jestに15秒間テストの実行を一時停止させ、内部関数を実行させるにはどうすればよいですか?

ありがとうございます!

答えて

1
it('has working hooks', async() => { 
    await new Promise(res => setTimeout(() => { 
    console.log("Why don't I run?") 
    expect(true).toBe(true) 
    res() 
    }, 15000) 
} 

または

it('has working hooks', done => { 
    setTimeout(() => { 
    console.log("Why don't I run?") 
    expect(true).toBe(true) 
    done() 
    }, 15000) 
} 
+0

ありがとうございます!遅くの承認には申し訳ありません。大学が起こった。これがなぜ機能するのか、自分のコードでエラーが発生するのか、さらに詳しく説明できますか?また、誰かが上記の問題を抱えている場合は、それを超えるテストフレームワークに最大値が組み込まれているため、タイムアウト時間を15000から引き下げてみてください。 – Nick

+0

あなたのコードでは、 'done'パラメータを渡さなかったので、' jest'は 'async'を持っていますが、最後まで実行されますが、コードを保持する' await'はありません。私は答えてもいいし、第1のものは 'await'で' async'を使い、第2のものは 'done'を使って両方ともコードを保持する。私が少し説明したら嬉しいです。 – Ron

+0

を使用すると、それは私のために無限に実行されます。何か案が? – Genjuro

関連する問題