Java 为什么我的Junit断言错误测试失败?

Java 为什么我的Junit断言错误测试失败?,java,junit,Java,Junit,我在Eclipse中运行以下测试(带有参数-ea): 输出为: java.lang.AssertionError at de.*.*.*.mytests.ColorHelperTest.testGetColorByString(ColorHelperTest.java:28) 28是行assert 1==2 为什么此测试失败?关键字是JRE级别的标志,与JUnit无关。我认为你真正想要的是: assertEquals(1, 2); assert关键字是JRE级别的标志,与JUnit无关。我认

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

输出为:

java.lang.AssertionError
at de.*.*.*.mytests.ColorHelperTest.testGetColorByString(ColorHelperTest.java:28)
28是行
assert 1==2


为什么此测试失败?

关键字是JRE级别的标志,与JUnit无关。我认为你真正想要的是:

assertEquals(1, 2);

assert
关键字是JRE级别的标志,与JUnit无关。我认为你真正想要的是:

assertEquals(1, 2);
您不能“期望”
AssertionError
,这是JUnit用来表示测试失败的特定类型的错误

更新:原来这是JUnit4.11的一个bug,在4.12中得到了解决:

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

更新:原来这是JUnit4.11的一个bug,在4.12中得到了解决:
很有趣。。。您使用的Junit版本是什么?使用4.12(在我的pom.xml中)看起来像:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

朱尼特
朱尼特
4.12
测试

同样的测试也适用于我。

有趣的是……您使用的Junit版本是什么?使用4.12(在我的pom.xml中看起来是:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

朱尼特
朱尼特
4.12
测试

完全相同的测试适用于我。

对不起,可能我误导了您,但断言只是一个示例。我不在乎1!=2;-)我想知道如何捕获其他方法抛出的断言错误。对不起,可能我误导了您,但断言只是一个示例。我不在乎1!=2;-)我想了解如何捕获由其他方法引发的断言错误。您是否设置了
-ea
标志?没有它,
assert
关键字就会被忽略。我确实忽略了。如果我没有,我也不会得到断言错误。我觉得很奇怪,这对你有效。这与“谢尔盖”相矛盾?!我刚刚检查了版本4.11和4.12,其行为确实有所不同。在4.11中,我收到了AssertionError,在4.12中,测试通过了。原因是,这是4.12之前版本的一个bug。您是否设置了
-ea
标志?没有它,
assert
关键字就会被忽略。我确实忽略了。如果我没有,我也不会得到断言错误。我觉得很奇怪,这对你有效。这与“谢尔盖”相矛盾?!我刚刚检查了版本4.11和4.12,其行为确实有所不同。对于4.11,我收到了AssertionError,对于4.12,测试通过了