如何断言大于使用JUnit断言?

我有这些值来自一个testing

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

我试试

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

我得到的java.lang.AssertionErrordetailMessagedebugging是null

我怎么能断言使用JUnit比条件更大

你是如何做到的 assertTrue(boolean)也有一个重载assertTrue(String, boolean) ,其中String是失败时的消息; 如果你想打印这样的,那么你就可以使用它。

你也可以使用匹配器。 请参阅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> 

当使用JUnit断言时,我总是使消息更加清晰。 它节省了大量的时间debugging。 这样做避免了不得不增加对hamcrest Matchers的依赖。

 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); 

您应该将Hamcrest库添加到您的构buildpath。 它包含所需的具有lessThan()方法的Matchers.class。

依赖如下。

 <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> <version>1.3</version> </dependency> 

你也可以尝试下面简单的soln:

 previousTokenValues[1] = "1378994409108"; currentTokenValues[1] = "1378994416509"; Long prev = Long.parseLong(previousTokenValues[1]); Long curr = Long.parseLong(currentTokenValues[1]); Assert.assertTrue(prev > curr ); 
 assertTrue("your message", previousTokenValues[1].compareTo(currentTokenValues[1]) > 0) 

这通过以前>当前值

你可以这样说

  assertTrue("your fail message ",Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1])); 

尝试使用内联(三元)断言,然后传入

 boolean assertion = length > 0 ? true:false; Assert.assertTrue(assertion); 

要么

  Assert.assertTrue( length > 0 ? true:false);