java - Assert 语句导致 JUnit 测试停止

标签 java eclipse junit

在我正在测试的类中,有一些断言语句用于检查各种条件。

其中一种方法是

GetNames(string id){
    assert(! id.Equals("")); // Causes all junit tests to stop
    ...
}

还有一个断言语句来检查 id 是否不为空。

在我的单元测试中,我有一个测试,我向它传递了一个空白字符串,还有其他一些测试。问题是,当在类中执行断言语句时,JUnit 测试会在该测试用例之后停止运行。

如何更改/设置单元测试,以便在类中出现断言失败时测试不会停止。

我必须启用断言才能使代码正常运行,因为在某些情况下变量会在断言中递增。不幸的是,我无法更改任何代码。

我在 eclipse 中使用 JUnit 插件。我在设置和拆卸部分没有任何代码。

最佳答案

如果正在测试的代码中有 assert 语句,并且断言是 enabled ,那么这些语句将导致 AssertionError被扔掉。您可以在测试代码中捕获它并忽略它:

try {
    xxx.GetNames("");
} catch (AssertionError e) {
    // this is expected - ignore it
}

关于java - Assert 语句导致 JUnit 测试停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115602/

相关文章:

java - 在单元测试中比较不同类的两个对象中的所有属性

java - junit 检测测试是否是唯一运行的一个

java - Hamcrest 匹配枚举值?

java - 在 Java 中返回通用对象(例如列表)的更清洁的解决方案

java - Eclipse 不在同一工作区中的两个项目之间导入 jar 依赖项

java - 获取用户在 TextView 中设置的 Short 值

Android(eclipse)PNG透明度显示为黑色(附图片示例)

java - java.lang.NoClassDefFoundError:com.google.maps.GeoApiContext $ Builder

java - 如何在 Jersey 生成的 WADL 文件的响应中包含 HTTP 状态代码

java - 带有抽屉导航的可滑动面板(如动画)