我对 Mockito 有一个小问题。假设我有这个代码:
MyObject object = mock(MyObject.class);
System.out.println("PROPERTY 1 BRUT VALUE : " + property1Value);
object.setProperty1(property1Value);
System.out.println("PROPERTY 1 VALUE BEFORE STUB : " + object.getProperty1());
when(object.getProperty1()).thenReturn(property1Value);
System.out.println("PROPERTY 1 VALUE AFTER STUB : " + object.getProperty1());
PROPERTY 1 BRUT VALUE : 150.0
PROPERTY 1 VALUE BEFORE STUB : 0.0
PROPERTY 1 VALUE AFTER STUB : 150.0
问题是我的对象属性没有直接设置。我在 MyObject 中有一个使用它的方法,它总是返回 0。如果它被模拟,就不能直接设置对象属性?
在这一点上找不到任何文档。
谢谢。
编辑 1:这是 MyObject 中使用 Mockito 设置的属性的方法
public Double getProperty1X2() {
return 2 * property1;
}
这个方法在我的测试中返回 0,即使我设置了属性值。也许是因为它直接使用该字段而不是 getter ?