1

我正在使用 org.jnuit.Assert 类对我的业务逻辑进行单元测试。

如果在运行时发生特定情况,例如特定变量应该具有非零值,我的业务逻辑会引发异常。

在我的 catch 块中,我想验证这个字符串消息:“变量 var1 应该具有非零值”。

我认为下面的代码片段会起作用,

try{
   //business logic
}catch(Exception e) {
   CharSequence charseq = "Variable var1 should have a non-zero value";
   Assert.assertEquals("Variable var1 should have a non-zero value",true,e.getMessage().contains(charseq));
} 

但它不起作用。任何建议,我怎样才能做到这一点?

谢谢,维杰博尔

4

1 回答 1

1

通常断言抛出异常就足够了,为什么断言消息包含一个你知道它会的字符串呢?你可以在 Junit 中这样做:

@Test(expected=MyException.class)
public void test() {}

您的代码应该按原样工作。如果您使用 Matchers,您将更好地了解为什么您的异常不包含您的消息:

Assert.assertThat(e.getMessage, contains("Variable var1...");
于 2012-11-30T00:08:44.930 回答