验证错误消息中的内容

时间:2012-11-29 20:02:15

标签: unit-testing junit

我正在使用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));
} 

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

谢谢, Vijay Bhore

1 个答案:

答案 0 :(得分:1)

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

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

您的代码应该按原样运行。如果您使用Matchers,您将更好地指出您的异常未包含您的消息的原因:

Assert.assertThat(e.getMessage, contains("Variable var1...");