如何使用java中的现有对象模拟方法?

时间:2012-06-21 08:07:49

标签: java mocking

我们有什么方法可以使用现有对象来模拟某些方法吗?

我使用Power Mock来模拟私有方法,但无法找到完成上述任务的方法。

由于

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你需要存根一个真实对象的方法。如果是这种情况,并且您通过Mockito使用PowerMock,则可以查看“间谍”。特征。您可以找到an example here

答案 1 :(得分:0)

最简单的方法就是覆盖测试用例中的方法。

public class ClassToTest {

    public int someMethod() {
        return 1 + otherMethod();
    }

    protected int otherMethod() {
        return 2;
    }

}

public class ClassToTestTest {
    @Test
    public void testSomeMethod() {
        ClassToTest classUnderTest = new ClassToTest() {
            @Override
            protected int otherMethod() {
                return 3;
            }
        }
        Assert.assertEquals(4, classUnderTest.someMethod());
    }
}