【发布时间】:2013-04-11 08:29:30
【问题描述】:
我似乎无法弄清楚如何使用 Mockito 模拟一个简单的 setter 方法。我有以下课程:
class MyClass {
private SomeObject someObject;
public void setSomeObject(SomeObject someObject) {
this.someObject = someObject;
}
public someObject getSomeObject() {
return someObject;
}
}
现在我只想在调用“setSomeObject”时设置一个新的“SomeObject”实例。设置器中的参数也应该被忽略。
我需要这样的东西:
MyClass mockedClass = mock(MyClass.class);
when(mockedClass.setSomeObject([ignoreWhatsInHere]))
.then(mockedClass.setSomeObject(new SomeObject();
但是,我似乎无法让语法为此工作。我只能使用 getters() 让模拟工作,因为这样我就可以返回一些东西。但我不知道如何为 setters() 做同样的事情。
感谢所有帮助。
【问题讨论】:
-
为什么需要它?你到底想达到什么目标?
-
hmm 这不起作用,因为它说退货不适用于 void :/
-
好吧,setSomeObject() 将以某种方式被调用:myClass.setSomeObject(someWeirdFunction.whichreturnsfinallySomeObject())。所以实际上我只想知道是否存在对 setter 的调用,然后自己设置对象。
-
不要模拟值对象!
标签: java mockito setter overwrite