如何在Android中使用Mokito覆盖/自定义函数的行为



我正在使用 Kotlin 开发一个 Android 项目。我还在我的项目中添加了插桩测试。这是我第一次编写Android仪器测试,我有点挣扎。我试图模拟使用 Mokito 的函数的行为。

请参阅此代码片段:

//Create a mock object of the class Calculator
Calculator mockCalculator = Mockito.mock(Calculator.class);
//Return the value of 30 when the add method is called with the arguments 10 and 20
Mockito.when(mockCalculator.add(10, 20)).thenReturn(30);

如您所见,当调用 add 方法时,它返回 30。我想做的是添加一个额外的步骤。

像这样的东西

Mockito.when(mockCalculator.add(10, 20)).
doThis(() -> {
StaticApplicationClass.StaticProperty = 30; // please pay attention to this made up function
})
.thenReturn(30);

上面的代码是虚构的代码。请参阅评论;有可能吗?

您可以使用thenAnswer(),因为它将帮助您根据传递给模拟的值执行操作。在以下情况下,我使用getArgument()方法来获取传递的参数。然后我将它们相加,使StaticApplicationClass.StaticProperty等于该总和。然后我返回总和。

Mockito.when(mockCalculator.add(any(Integer.class), any(Integer.class))).thenAnswer(i -> {
int number1 = i.getArgument(0);
int number2 = i.getArgument(1);
int sum = number1 + number2;
StaticApplicationClass.StaticProperty = sum;
return sum;
});

相关内容

  • 没有找到相关文章

最新更新