Phi*_*ayo 9 java junit unit-testing
在Junit 4中,你看到在assertEquals(Object,Object)失败时抛出一个ComparisonFailure而不是一个缺点AssertionError吗?
assertEquals(Object,Object)抛出
ComparisonFailure如果预期和实际都是StringAssertionError如果任一不为StringAssertionError 消息已经是表单
"expected:<"+ expected.toString() +"> but was <"+ actual.toString()
Run Code Online (Sandbox Code Playgroud)
(通过String.valueOf,参见下面由Assert.assertEquals(Object,Object)调用的junit-4.8.2方法来构建AssertionError消息):
static String format(Object expected, Object actual) {
...
String expectedString= String.valueOf(expected);
String actualString= String.valueOf(actual);
...
return formatted+"expected:<"+ expectedString +"> but was:<"+ actualString +">";
Run Code Online (Sandbox Code Playgroud)
ComparisonFailure提供更加可读的方法来发现eclipse或Intellij IDEA对话框中的差异(FEST-Assert抛出此异常)
[更新:编辑的问题专注于ComparisonFailure/AssertionError讨论.]
我们开始比较字符串,因为很明显如何使错误消息更有帮助.我们从未将ComparisonFailure扩展为一般对象,因为不清楚如何以一般方式这样做.正如其他人所建议的那样,如果您可以提供更好的错误消息或移动到Hamcrest,欢迎您添加特殊断言,Hamcrest提供了添加有用失败消息的一般机制.
问候,
肯特
| 归档时间: |
|
| 查看次数: |
3018 次 |
| 最近记录: |