使用JUnit assertEquals的自定义异常消息?

Lor*_*orm 7 java testing customization junit

我正在使用断言等于比较两个数字

Assert.assertEquals("My error message", First , Second);
Run Code Online (Sandbox Code Playgroud)

然后,当我生成测试报告时,我得到了

"我预期的错误信息(第一)(第二)"

如何自定义我用斜体显示的部分?和数字的格式?

Sal*_*lem 8

你可以使用这样的东西:

int a=1, b=2;
String str = "Failure: I was expecting %d to be equal to %d";
assertTrue(String.format(str, a, b), a == b);
Run Code Online (Sandbox Code Playgroud)


Dun*_*nes 7

该消息在Assert课堂上是硬编码的.您必须编写自己的代码才能生成自定义消息:

if (!first.equals(second)) {
  throw new AssertionFailedError(
      String.format("bespoke message here", first, second));
}
Run Code Online (Sandbox Code Playgroud)

(注意:上面是一个粗略的例子 - 你需要检查空值等.查看代码Assert.java以了解它是如何完成的).