Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何断言大于使用JUnit断言?_Java_Junit - Fatal编程技术网

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

Java 如何断言大于使用JUnit断言?,java,junit,Java,Junit,我从测试中得到了这些值 previousTokenValues[1] = "1378994409108" currentTokenValues[1] = "1378994416509" 我试着 // current timestamp is greater assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1])); 我得到java.lang.Ass

我从测试中得到了这些值

previousTokenValues[1] = "1378994409108"
currentTokenValues[1] = "1378994416509"
我试着

    // current timestamp is greater
    assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));
我得到
java.lang.AssertionError
detailMessage
关于调试的消息是
null


在使用JUnit的过程中,我怎样才能断言大于条件呢
assertTrue(布尔)
也有一个重载,其中
字符串
是发生故障时的消息;如果你想打印某某不大于某某,你可以使用它

您还可以添加
hamcrest all
作为使用匹配器的依赖项。见:

这会产生如下错误:

java.lang.AssertionError: timestamp
Expected: a value greater than <456L>
     but: <123L> was less than <456L>
java.lang.AssertionError:时间戳
应为:大于的值
但是:比

在使用JUnit断言时,我总是让消息清晰明了。它节省了大量的调试时间。这样做可以避免添加对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);

你可以这样说

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

这将通过“上一个>当前值”

您也可以尝试以下简单解决方案:

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

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

Assert.assertTrue(prev  > curr );   

您应该将Hamcrest库添加到构建路径中。它包含所需的Matchers.class,该类具有lessThan()方法

依赖关系如下所示

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

org.hamcrest
汉克雷斯特图书馆
1.3
测试

或者,如果不需要添加额外的库,例如
hamcrest
,则可以仅使用
junit
依赖项将逻辑实现为实用方法:

public static void assertGreaterThan(int greater, int lesser) {
    assertGreaterThan(greater, lesser, null);
}

public static void assertGreaterThan(int greater, int lesser, String message) {
    if (greater <= lesser) {
        fail((StringUtils.isNotBlank(message) ? message + " ==> " : "") +
                "Expected: a value greater than <" + lesser + ">\n" +
                "But <" + greater + "> was " + (greater == lesser ? "equal to" : "less than") + " <" + lesser + ">");
    }
}
publicstaticvoid资产大于(int大于,int小于){
资产大于(大、小、空);
}
公共静态void assertGreaterThan(整数较大、整数较小、字符串消息){

如我所知,在JUnit中,语法如下:

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

这意味着,条件在消息前面。

发布整个代码以及完整的错误消息。可能您的断言语句在数组初始化之前。仅供参考,这里是指向
OrderingComparison
的链接,其中包含
大于
org.hamcrest
hamcrest all
注意当您使用JUnit 4.11时,默认情况下会包含at Hamcrest,因此无需搜索依赖项。请注意。@Chanoch我有JUnit 4.12,它可传递地依赖于Hamcrest core 1.3。org.Hamcrest.CoreMatchers类上没有比方法更大的方法。如果我将Hamcrest all 1.3添加为附加依赖项,它将提供org.Hamcrest.Matc她的。比方法更好。很好的解决方案,非常干净。
public static void assertGreaterThan(int greater, int lesser) {
    assertGreaterThan(greater, lesser, null);
}

public static void assertGreaterThan(int greater, int lesser, String message) {
    if (greater <= lesser) {
        fail((StringUtils.isNotBlank(message) ? message + " ==> " : "") +
                "Expected: a value greater than <" + lesser + ">\n" +
                "But <" + greater + "> was " + (greater == lesser ? "equal to" : "less than") + " <" + lesser + ">");
    }
}
AssertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]), "your fail message ");