我对 Mockito 很陌生,如果我走在正确的轨道上,请告诉我。我正在尝试使用 Mockito 模拟方法功能。
public SUTclass {
private final DependencyInjectedObj dep; // already successfully mocked
private int statefulInteger;
private int otherInteger;
public int doSomething() {
return otherInteger + dep.doMath(statefulInteger);
}
}
现在,dep被嘲笑......但dep.doMath总是返回0。在生产中,dep是有状态的——没有办法避免它。在生产中,不同的线程实时更新其状态。dep.doMath根据现在的状态进行一些时髦的计算。您可以想象生产功能可能会查看温度计并使用它的温度做一些事情,并doSomething根据该温度提供实时状态。
不过,在我的测试中,我希望dep.doMath拥有这个功能(这对于单元测试来说是足够的近似值):
public int doMath(int input) {
return SOMECONSTANT * input;
}
我想我可以创建一个 Mock 实现DependencyInjectedObj并使用它,但这似乎违背了使用 Mockito 和when语法的目的。我应该怎么办?