我试图了解在Junit4中哪个调用会导致错误,哪个调用会导致失败。直到Junit3,
可以使用以下方法创建失败
junit.framework.AssertionFailedError和错误与
junit.framework.Assert.assertEquals但是,由于junit.framework.Assert,的不推荐(没有转移到org.junit.Assert,),我无法在junit4中找到一种抛出失败的方法。无论我尝试使用org.junit.Assert (甚至Assert.fail() ),JUnit都认为它是错误。
知道如何在Junit4样式的测试中正确地生成失败吗?
更新
我发现在std.err的末尾有一个由JUnit ant目标生成的XML。
<system-err>TEXT here</system-err>我怀疑这是错误而不是失败的原因。但是当我清除所有sys.err时,它仍然标记错误。
发布于 2019-05-13 10:07:56
您仍然可以使用Assert.assertThat获取断言失败。
assertThat(0,is(1));// assertThat(0,is(1)) // passes
它可能不是您所需要的,但是JUnit 4也有ComparisonFailure。
当assertEquals(String,String)失败时引发。如果要向用户显示两个复杂字符串之间的差异,请手动创建并抛出一个ComparisonFailure。
发布于 2021-08-31 00:48:25
我也有同样的问题。到目前为止,我找到的唯一解决方案是使用一个try块,然后是
catch (AssertionError ae) {
fail(ae.toString());
}但我看到了这件事的坏处,我看到很多人说这是一种糟糕的做法。不幸的是,当我使用ant来做报告时,我没有看到其他的方法。
https://stackoverflow.com/questions/56109843
复制相似问题