我正在尝试测试下一个异常,但我不知道如何从 JUnit 抛出该异常,因为它是该方法的内部异常。
public boolean suscribirADato(int idDato) {
InetAddress ip = null;
boolean adecuadamenteSuscrito = false;
try {
ip = InetAddress.getByName(ipMulticast.get(idDato));
grupoMulticast.set(idDato, ip);
conexion.joinGroup(grupoMulticast.get(idDato));
adecuadamenteSuscrito = true;
} catch (IOException e) {
LOGGER.info(e.getMessage());
}
return adecuadamenteSuscrito;
}
最佳答案
其他人回答说你应该使用模拟框架。
但是,我对你的问题的理解如下:
I don't know how to throw the exception from JUnit, because is a internal exception of the method.
我的理解是,您正在尝试对方法内抛出并捕获的异常进行单元测试?
也许你的方法应该分为2个或更多方法,你可以分别测试?
从您的代码示例中,引发异常时执行的逻辑是
LOGGER.info(e.getMessage());
您还可以选择模拟 LOGGER 并在调用 info 时保留跟踪。然后,您可以断言 LOGGER.info 确实被调用(如果我理解正确的话)。
关于java - JUnit 异常处理测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37528209/