JUnit异常处理测试

时间:2016-05-30 14:32:27

标签: java unit-testing junit

我正在尝试测试下一个异常,但我不知道如何从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;
    }

2 个答案:

答案 0 :(得分:1)

您需要了解Mockito框架。 http://mockito.org/ when(myMockedObject.routine(anyParameter()))。thenThrow(new NullPointerException());

答案 1 :(得分:1)

其他人回答说你应该使用模拟框架。

但是,我对您的问题的理解如下:

  

我不知道如何从JUnit中抛出异常,因为它是一个   该方法的内部异常

我的理解是你试图对方法中抛出的异常和抓住进行单元测试?

也许您的方法应分为2个或更多方法,您可以单独测试?

从您的代码示例中,抛出异常时执行的逻辑是

LOGGER.info(e.getMessage());

您也可以选择模拟LOGGER并在调用信息时保持跟踪。然后,你可以断言LOGGER.info确实被调用(如果我理解正确,那就是)。