0

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

我使用 Power Mock 来模拟私有方法,但找不到执行上述任务的方法。

谢谢

4

2 回答 2

2

如果我理解正确,您只需要删除一个真实对象的方法。如果是这种情况,并且如果您将 PowerMock 与Mockito一起使用,您可以查看“间谍”功能。你可以在这里找到一个例子

于 2012-06-21T08:18:52.373 回答
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());
    }
}
于 2012-06-21T08:13:36.820 回答