断言导致JUnit测试停止的语句

时间:2010-11-06 22:51:27

标签: java eclipse junit

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

其中一种方法是

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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