使用Mockito WhiteBox在方法范围内设置成员变量

时间:2015-04-28 16:21:24

标签: junit mockito

我是Mockito的新手,并试图弄清楚是否有办法使用Mockito的WhiteBox功能在公共方法中设置成员变量的值。

我试图搜索这个,但似乎没有引用正在谈论这个。

是否可行。

由于

添加了我想要实现的目标的示例。考虑以下课程。

public class FinancialsCalculator {
    private int va11;
    private int val2; 

    public int calculateFinancialsAppliedSum() {
        //In actual application this calc get's Injected using Guice
        Calculator calc;

        //Some pre-processing to the values val1 and val2 will be performed here

        return calc.getSum(val1, val2);
    }
}

现在我需要对上面的类进行单元测试。我想在calculateFinancialsAppliedSum方法的范围内模拟Calculator类实例。

如果它在FinancialsCalculator类级别(即与val1和val2变量处于同一级别),我可以轻松地模拟它并使用mockito的Whitebox.setInternalState()将模拟实例设置为该类级私有实例计算器。

不幸的是,由于其他原因,我不能使这个Calculator实例成为FinancialsCalculator类的类级私有实例。它必须在calculateFinancialsAppliedSum方法中。

那么如何在calculateFinancialsAppliedSum方法中模拟这个Calculator实例进行测试呢?

0 个答案:

没有答案