gpt4 book ai didi

java - 在调用模拟对象的方法时做一些事情

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:20 26 4
gpt4 key购买 nike

我正在以模型- View -演示者模式为演示者编写测试。我 mock 了 View 并测试了演示者。我想做的是在 View 中调用模拟方法时执行一些代码。

具体来说, View 将“保存点击事件”发送给演示者,然后演示者告诉 View “保存表单中的更改”,之后 View 将更改从 UI 组件提交到模型。然后演示者可以继续在模型中做任何它想做的事情。由于现在模拟了 View ,因此它不会对模型进行任何修改。所以我想要完成的是,当在模拟中调用 saveChangeInTheForm 时,我将模拟 View 的行为并更改模型的内容。

这可以使用 Mockito 完成吗?我现在拥有的是...

Mockito.doNothing().when(view).saveChangeInTheForm();

.. 理想情况下,我想用 doMyCustomThing 替换“doNothing”

最佳答案

这可以通过实现Answer 来完成。例如:

final Model model = ...;
Answer modelModifier = new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
model.setX(1);
model.setY(2);
model.activateZ();
return null;
};

Mockito.doAnswer(modelModifier).when(view).saveChangeInTheForm();

关于java - 在调用模拟对象的方法时做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22619716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com