以下断言语法是否正确?

时间:2013-11-29 09:48:44

标签: java assert assertions

我有以下断言声明;

assertTrue(xyz.getTotalRecords() == 50);

我收到错误

java.lang.AssertionError
    at org.junit.Assert.fail(Assert.java:92)
    at org.junit.Assert.assertTrue(Assert.java:43)
    at org.junit.Assert.assertTrue(Assert.java:54)

我做错了还是实际被断言的问题?

5 个答案:

答案 0 :(得分:2)

您收到断言错误,因为xyz.getTotalRecords()不是50,但您的断言是正确的,尽管您可能希望使用assertEquals而不是

答案 1 :(得分:1)

好的风格正在使用assertEquals(xyz.getTotalRecords(), 50)

答案 2 :(得分:0)

自编译以来,语法正确。您会收到此异常,因为条件不是true

答案 3 :(得分:0)

  

我做错了什么,或者实际上是什么问题   被断言?

语法很好。问题在于断言。您的预期价值与实际价值不同。

尝试在断言失败时提供消息:JUnit

assertTrue("Expected size: 50, Actual size: " + xyz.getTotalRecords(), xyz.getTotalRecords() == 50);

assertEquals("Expected size: 50, Actual size: " + xyz.getTotalRecords(), xyz.getTotalRecords(), 50);

答案 4 :(得分:0)

你做得很好。你刚刚得到失败的断言。顺便说一句,好的做法是以这种方式使用Hamcrest

import static org.hamcrest.CoreMatchers.*;
...
assertThat(xyz.getTotalRecords(), is(50));