このブログ投稿では、これらのメソッドの主な違いについて説明します。まず第一に、なぜこの方法を使用するのかということです。このメソッドは、メソッドのパフォーマンスをテストする場合、またはメソッドが完了するまでにどれくらいの時間がかかるかを知りたい場合に役立ちます。
まず、テストメソッドに時間を与える必要があります。その後、これらのテストはテスト内の操作を実行します。この操作に指定された時間よりも長い時間がかかる場合、このテストは失敗します。
さて、これらのメソッドが何であるか、テストメソッドでそれらを使用する理由がわかりました。それなら、その違いを知る必要があります。
簡単に説明します。 assertTimeout メソッドは指定した時間をカウントします。テスト メソッドに指定された時間よりも時間がかかる場合、すべての操作が完了した後でこのテストは失敗します。ただし、assertTimeoutPreemptively メソッドに指定された時間よりも時間がかかる場合、このメソッドはすぐに失敗します。すべてのプロセスが完了するのを待つことはありません。次のステップのプロジェクトでこれをテストします。
まず、お気に入りの IDE を開きます。 Intellij Idea は Java 開発者の間で非常に人気があるため、Intellij Idea を開きます。もちろん、Eclipse、Netbeans など、お好みの IDE を使用することもできます。
次に、新しい Maven プロジェクトを作成し、これら 2 つの依存関係を pom.xml ファイルに追加します。
org.junit.jupiter junit-jupiter-api 5.3.1 test org.junit.jupiter junit-jupiter-engine 5.3.1 test
これらを追加した後、src/test/java フォルダーを開き、
新しいクラスを作成し、任意の名前を付けます。TimeoutTest とします。
2 つのテスト メソッドを作成します。1 つはassertTimeout をテストし、もう 1 つはassertTimeoutPreemptiveにテストします。
その後、長さを指定し、簡単な印刷メッセージを追加します。
Thread.sleep() メソッドを追加すると、スレッドは 8000 ミリ秒 (8 秒) スリープします。ただし、これら 2 つの方法は 3 秒以上かかるため、失敗します。より深く理解するために、これらのメソッドをテストしてみましょう。
そして、testAssertTimeout メソッドは 8 秒 3 ミリ秒 かかります。このメソッドはすべての操作が完了するまで待機しますが、もう 1 つのメソッドは 3 秒 45 ミリ秒 かかり、他のプロセスの完了を待機しません。 、すぐに失敗します。
testAssertTimeout メソッドはメッセージを出力しますが、assertTimeoutPreemptively メソッドはメッセージを出力せず、他の操作を無視しているというメッセージが表示されます。
この投稿では、assertTimeout とassertTimeoutPreemptively の主な違いについて説明しました。
ついに、コードが Github で入手可能になりました。
気をつけて、また会いましょう。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3