我是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实例进行测试呢?