1. ホーム
  2. java

[解決済み] JUnit Assert を使用して greater than をアサートするにはどうすればよいですか?

2022-02-18 16:17:44

質問

あるテストから、次のような値が得られました。

previousTokenValues[1] = "1378994409108"
currentTokenValues[1] = "1378994416509"

そして、私は

    // current timestamp is greater
    assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));

を取得します。 java.lang.AssertionErrordetailMessage は、デバッグ時に null .

を使用している場合、どのように greater than 条件をアサートすればよいのでしょうか。 JUnit

どのように解決するのですか?

どうやったかだけ。 assertTrue(boolean) にもオーバーロードがあります。 assertTrue(String, boolean) ここで String は失敗したときのメッセージです。「こんなものが○○より大きくなかった」と出力したいときに使います。

を追加することもできます。 hamcrest-all を依存関係として追加することで、マッチャーを使用することができます。参照 https://code.google.com/p/hamcrest/wiki/Tutorial :

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;

assertThat("timestamp",
           Long.parseLong(previousTokenValues[1]),
           greaterThan(Long.parseLong(currentTokenValues[1])));

というようなエラーが出ます。

java.lang.AssertionError: timestamp
Expected: a value greater than <456L>
     but: <123L> was less than <456L>