使用TestNG进行ExceptionHandling

时间:2014-11-06 20:17:06

标签: java

我引用了以下链接 - http://www.mkyong.com/unittest/testng-tutorial-2-expected-exception-test/来测试使用TestNG的异常。如何从调用方法打印消息?例如,当调用orderBo.save(null);时,如何打印 - Order is empty!

1 个答案:

答案 0 :(得分:5)

您可以在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");
    }
}

归根结底,这是一个品味问题;你真正发现后者更具可读性......