【发布时间】:2021-12-22 17:14:07
【问题描述】:
public class TestedClass
{
public void publicMethod()
{
privateMethod();
}
private void privateMethod()
{
}
}
我想用 PowerMockito 测试私有方法只被调用一次。
这是我的测试类:
@RunWith(PowerMockRunner.class)
@PowerMockIgnore("javax.management.*")
public class TestedClassTest
{
@Before
public void setUp()
{
}
@Test
public void testPrivateMethodCalledOnce() throws Exception
{
TestedClass spy = PowerMockito.spy(new TestedClass());
spy.publicMethod();
PowerMockito.verifyPrivate(spy, Mockito.times(772)).invoke("privateMethod");
}
}
尽管仅在此测试通过后才被调用。即使我在公共方法中评论 privateMethod,测试似乎也通过了。
public class TestedClass
{
public void publicMethod()
{
//privateMethod(); <-- test still passes
}
private void privateMethod()
{
}
}
有人知道我做错了什么吗?有谁知道如何验证私有方法在单元测试中被调用了一次吗?
【问题讨论】:
标签: java mockito powermockito spy