测试Junit是否捕获到异常

Wou*_*len 3 java testing junit

我将以一个代码示例开始;我必须测试一个处理数据包的功能。在此函数中,数据包被打开,并且当它不包含所有预期数据时,将引发InvalidParameterExeption并记录下来。

public void handleData(dataPacket) {
    try {
        analyseData(dataPacket);
    } catch (InvalidParameterException e) {
        e.printStackTrace()
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果一切顺利,则我的异常会打印在终端中。但是我该如何测试呢?我不能使用这个:(因为捕获到异常)

@Test(expected = InvalidParameterExeption.class)
public void testIfFaultyDataPacketIsRecognised {
    handleData(faultyDataPacket);
}
Run Code Online (Sandbox Code Playgroud)

如何测试抛出InvalidParameterExeption?

Ji *_*aSH 5

您不会捕获未抛出的异常-_-仅测试“抛出异常方法”而不是“异常捕获”方法

@Test(expected = InvalidParameterExeption.class)
public void testIfFaultyDataPacketIsRecognised() {
    analyseData(faultyDataPacket);
}
Run Code Online (Sandbox Code Playgroud)