我对 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
语法的目的。我应该怎么办?