如何断言大于使用JUnit断言?
我有这些值来自一个testing
previousTokenValues[1] = "1378994409108" currentTokenValues[1] = "1378994416509"
我试试
// current timestamp is greater assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));
我得到的java.lang.AssertionError
和detailMessage
debugging是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);