JMockit,如何模拟没有返回的私有方法

时间:2014-12-05 15:15:44

标签: java unit-testing private jmockit

我试图使用JMockit模拟一个私有方法,并且正在努力。我一直在研究这些教程,并且可以模拟返回值的私有方法,而不是没有。此特定方法与数据库交互,不返回任何内容。出于本次测试的目的,我想要做的就是有效地掩盖这种方法。我正在使用的测试格式如下所示,请注意,通常在调用方法deencapsulation后结果将是直接的。

    @Test
public void testRetrieveAndSaveReport() {

    //Make class with private class final, to be used in the Exceptionsinners class
    final ESReportOutputLogic eSReportOutputLogic = new ESReportOutputLogic();

    //  Define Expectations
    //  pass eSReportOutputLogic as argument to make it a Mocked type in the Exceptions Class
    new Expectations(eSReportOutputLogic){
        ESReportOutputLogic eSReportOutputLogic;
        {
            Deepcapsulation.invoke(eSReportOutputLogic);

        }
    };

    ESReportOutputLogic rol = new ESReportOutputLogic();
    rol.retrieveAndSaveReport("","",1);

    //  asserts.....
}

1 个答案:

答案 0 :(得分:1)

您使用哪种抽象与数据库进行交互?

我建议嘲笑这个而不是试图从你的测试的角度来模拟某些东西should not exist

模拟私有方法意味着您有效地将测试中的代码留在应用程序中。

相关问题