我记得读过一个示例,其中显示了如何设置模拟对象的成员,例如:
MyClass mockedClass = mock(MyClass.class);
//and something like this to set `someVariable` with some value
Mokito.set(mockedClass.someVariable, actual_value_intended_to_be_set);
很遗憾,我无法再找到该链接。有人可以敬畏 这样的例子还是在这里解释一下?
答案 0 :(得分:0)
如果你希望你的mock的外向行为看起来像mockedClass.someVariable有actual_value_intended_to_be_set,你可以写:
when(mockedClass.getSomeVariable()).thenReturn(actual_value_intended_to_be_set);
快乐的嘲笑!
答案 1 :(得分:0)
这可能是你想要的吗?
public class MyClassTest {
@InjectMocks private MyClass mockedClass;
@BeforeMethod(groups = { "unit" })
public void setup() throws Exception {
mockedClass = new MyClass();
MockitoAnnotations.initMocks(this);
Mockito.when(getSomeVariable()).thenReturn(actual_value_intended_to_be_set);
}
@Test(groups = { "unit" })
public void testMyClass() throws Exception {
//almost too trivial an example since you just setup this.
Assert.assertEquals(getSomeVariable(), actual_value_intended_to_be_set);
}
}
它还会创建您的MyClass
对象和sets
返回值。