我引用了以下链接 - http://www.mkyong.com/unittest/testng-tutorial-2-expected-exception-test/来测试使用TestNG的异常。如何从调用方法打印消息?例如,当调用orderBo.save(null);
时,如何打印 - Order is empty!
答案 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");
}
}
归根结底,这是一个品味问题;你真正发现后者更具可读性......