我试图了解在Junit4中哪个调用导致错误,哪个导致失败。直到Junit3,
可以使用
创建故障junit.framework.AssertionFailedError
还有
错误junit.framework.Assert.assertEquals
但是随着 junit.framework.Assert 的弃用,该信息并未移至 org.junit.Assert ,我无法在junit4中找到引发失败的方法。我尝试使用org.junit.Assert(甚至Assert.fail())进行的任何操作,JUnit都将其视为错误。
是否有关于如何在Junit4样式测试中正确生成故障的想法?
更新
我发现JUnit ant目标生成的XML末尾有一个std.err。
<system-err>TEXT here</system-err>
,并且我怀疑这是导致它成为错误而不是失败的原因。但是当我清除所有sys.err时,它仍然标记为错误。
答案 0 :(得分:1)
您仍然可以使用Assert.assertThat来获取断言失败
assertThat(0, is(1)); // fails: assertThat(0, is(not(1))) // passes
可能不是您所需要的,但JUnit 4也有ComparisonFailure
当assertEquals(String,String)失败时抛出。如果要向用户显示两个复杂字符串之间的区别,请手动创建并抛出一个CompareFailure。