136

これらの値はテストから取得しています

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

そして私は試します

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

デバッグ中のjava.lang.AssertionErrorとを取得します。detailMessagenull

使用時に条件より大きいと断言するにはどうすればよいですかJUnit

4

8 に答える 8

179

ちょうどあなたがそれをやった方法。失敗した場合のメッセージである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>
于 2013-09-12T13:57:22.010 に答える
28

JUnit アサートを使用するときは、常にメッセージを適切かつ明確にします。デバッグにかかる​​時間を大幅に節約できます。このようにすることで、hamcrest マッチャーに追加の依存関係を追加する必要がなくなります。

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

Long prev = Long.parseLong(previousTokenValues[1]);
Long curr = Long.parseLong(currentTokenValues[1]);
assertTrue("Previous (" + prev + ") should be greater than current (" + curr + ")", prev > curr);
于 2013-09-12T13:58:34.460 に答える
14

以下の単純なソルンを試すこともできます:

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

Long prev = Long.parseLong(previousTokenValues[1]);
Long curr = Long.parseLong(currentTokenValues[1]);

Assert.assertTrue(prev  > curr );   
于 2014-10-17T18:36:50.473 に答える
10

ビルド パスに Hamcrest-library を追加する必要があります。これには、lessThan() メソッドを持つ必要な Matchers.class が含まれています。

依存関係は以下の通り。

<dependency>
  <groupId>org.hamcrest</groupId>
  <artifactId>hamcrest-library</artifactId>
  <version>1.3</version>
  <scope>test</scope>
</dependency>
于 2016-09-11T14:05:47.087 に答える
2
assertTrue("your message", previousTokenValues[1].compareTo(currentTokenValues[1]) > 0)

これは、以前の > 現在の値に渡されます

于 2013-09-12T14:12:17.257 に答える