我在Eclipse中运行以下测试(带有-ea参数):

public class ColorHelperTest
{
    @Rule
    public ExpectedException thrown = ExpectedException.none();

    @Test
    public void testGetColorByString()
    {
        thrown.expect(AssertionError.class);
        assert 1 == 2;
    }
}


输出为:

java.lang.AssertionError
at de.*.*.*.mytests.ColorHelperTest.testGetColorByString(ColorHelperTest.java:28)


28是行assert 1==2

为什么该测试失败?

最佳答案

您不能“期望” AssertionError,这是JUnit用来表示测试失败的特定错误类型。

更新:原来是JUnit 4.11的一个错误,并且在4.12中已解决:
https://github.com/junit-team/junit/blob/master/doc/ReleaseNotes4.12.md#pull-request-583-pull-request-720-fix-handling-of-assertionerror-and-assumptionviolatedexception-in-expectedexception-rule

关于java - 为什么我的Junit-AssertionError-Test失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30511826/

10-10 05:48