我将从一个代码示例开始;我必须测试一个处理数据包的函数。在这个函数中,数据包被打开,当它不包含所有预期的数据时,抛出一个InvalidParameterExeption并记录下来。
public void handleData(dataPacket) {
try {
analyseData(dataPacket);
} catch (InvalidParameterException e) {
e.printStackTrace()
}
}
所以,如果一切顺利,我的异常会打印在我的终端上。但是我该如何测试呢?我不能使用这个:(因为拦截到例外状况)
@Test(expected = InvalidParameterExeption.class)
public void testIfFaultyDataPacketIsRecognised {
handleData(faultyDataPacket);
}
如何测试是否引发了InvalidParameterExeption?
2条答案
按热度按时间hgtggwj01#
您不会捕捉到未抛出的异常。只需测试“抛出异常”方法,而不是“异常捕捉”方法
0sgqnhkj2#
理想情况下,你应该捕获并重新抛出异常。但是如果你不想这么做,那么为什么不像预期的那样在测试用例中捕获异常?