我开始学习嘲笑。我想当考试被叫来时(只为学习目的)考试会失败。
数学类:
public class MathUtils {
public int addWithHelper(int a, int b) {
MathUtilsHelper mathUtilsHelper = new MathUtilsHelper();
return mathUtilsHelper.addNumbers(a,b);
}
}
我的数学助手:
public class MathUtilsHelper {
int addNumbers(int a, int b) {
return a + b;
}
}
类数学测试
@Test
void itShouldAddNumberFromHelper() {
MathUtilsHelper mathUtilsHelperMocked = Mockito.mock(MathUtilsHelper.class);
when(mathUtilsHelperMocked.addNumbers(5,3)).thenReturn(999); // this doesn't works !!!!!!
int add = mathUtils.add(5, 3);
assertEquals(8, add); // should throw error
}
谢谢你的帮助!
2条答案
按热度按时间goucqfw61#
mathutils中没有模拟对象,请对mathutils类执行以下操作:
在初始化测试时,请尝试以下操作:
pinkon5k2#
您的util类每次都在创建一个新的助手示例,因此永远不会使用mock。
老实说,我不知道为什么需要util类,但是如果您想让它更易于测试,请更改它,以便将助手的示例传递到构造函数中,而不是在util类中示例化它。换句话说,依赖注入。
这样就可以创建mock,并通过传入mock来创建util类的示例。