我正在使用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
答案 0 :(得分:1)
通常断言抛出异常就足够了,为什么断言消息包含你知道的字符串呢?你可以在Junit中这样做:
@Test(expected=MyException.class)
public void test() {}
您的代码应该按原样运行。如果您使用Matchers,您将更好地指出您的异常未包含您的消息的原因:
Assert.assertThat(e.getMessage, contains("Variable var1...");