如何设置模拟对象的成员

时间:2013-07-11 15:09:47

标签: mockito

我记得读过一个示例,其中显示了如何设置模拟对象的成员,例如:

 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);

很遗憾,我无法再找到该链接。有人可以敬畏 这样的例子还是在这里解释一下?

2 个答案:

答案 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返回值。