2014-11-06 97 views
2

我参考了以下链接 - http://www.mkyong.com/unittest/testng-tutorial-2-expected-exception-test/以使用TestNG测试异常。如何打印来自调用方法的消息?对于例如,当orderBo.save(null);叫,我怎么打印 -​​使用TestNG进行异常处理

+1

不明白你的意思;你想测试预期异常的错误信息的内容吗? – fge 2014-11-06 20:20:19

+0

是的,这是正确的。这正是我想要的。 – rickygrimes 2014-11-06 20:23:30

+0

@fge - 你能建议吗? – rickygrimes 2014-11-06 20:27:19

回答

4

可以使用,沿着expectedExceptions参数到@Test批注,则expectedExceptionsMessageRegEx。然而,这变得相当凌乱注释:

@Test(
    expectedExceptions = MyException.class, 
    expectedExceptionsMessageRegEx = "^regex for message here$" 
) 
public void testWhatever() 
{ 
    codeThatRaisesSomeException(); 
} 

,并注意参数值,作为参数顾名思义,是一个正则表达式...

而不是,为什么不只是这样做:

@Test 
public void testWhatever() 
{ 
    try { 
     codeThatRaisesSomeException(); 
     fail("No exception thrown!"); 
    catch (MyException e) { 
     assertEquals(e.getMessage(), "the expected message here"); 
    } 
} 

最终,这是一个口味问题;你真的发现后者更可读...

+0

非常感谢。 – rickygrimes 2014-11-06 20:35:30