Java PowerMock:如何为Mockito实现EasyMock的expectPrivate()?

Java PowerMock:如何为Mockito实现EasyMock的expectPrivate()?,java,mocking,mockito,private-members,powermock,Java,Mocking,Mockito,Private Members,Powermock,PowerMock提供了方法expectPrivate来模拟私有方法,但是它只出现在中,而不出现在中 那么,PowerMockito是否有一个等价物?我猜不是因为我没有找到它,而是因为。但这并不能阻止PowerMockito解决这个问题。因此,我问这个主要是为了确认,因为我认为这对其他人来说是有价值的。PowerMockito也提供了模拟私有方法的方法,从以下方面: PowerMockito还提供了模拟私有方法的方法,这些方法来自: 嗯,奇怪的是他们没有给它一个更相似的名字。verifyPriv

PowerMock提供了方法expectPrivate来模拟私有方法,但是它只出现在中,而不出现在中


那么,PowerMockito是否有一个等价物?我猜不是因为我没有找到它,而是因为。但这并不能阻止PowerMockito解决这个问题。因此,我问这个主要是为了确认,因为我认为这对其他人来说是有价值的。

PowerMockito也提供了模拟私有方法的方法,从以下方面:


PowerMockito还提供了模拟私有方法的方法,这些方法来自:


嗯,奇怪的是他们没有给它一个更相似的名字。verifyPrivate不是问题的一部分,但如果你举个例子,我会接受你的答案,我自己也做过,但不是将它添加到问题的答案中,而是应该添加到其他人的答案中。是的,我猜他们选择命名是为了使它类似于Mockito。我已根据要求添加了一个示例。谢谢!这个例子是为了其他人的利益,有助于使S.O.成为那些技能较低的人的良好资源。嗯,奇怪的是,他们没有给它起一个更相似的名字。verifyPrivate不是问题的一部分,但如果你举个例子,我会接受你的答案,我自己也做过,但不是将它添加到问题的答案中,而是应该添加到其他人的答案中。是的,我猜他们选择命名是为了使它类似于Mockito。我已根据要求添加了一个示例。谢谢!这个例子是为了其他人的利益,有助于使S.O.成为技能较低者的良好资源。
<T> WithOrWithoutExpectedArguments<T> when(Object instance, Method method) 
Expect calls to private methods.


verifyPrivate(Object object, org.mockito.verification.VerificationMode verificationMode) 
      Verify a private method invocation with a given verification mode.
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

import static org.mockito.Matchers.eq;

@RunWith(PowerMockRunner.class)
@PrepareForTest(Foo.class)
public class SimpleTest {

    @Test
    public void testHello() throws Exception {
        Foo foo = PowerMockito.spy(new Foo());
        foo.sayHello();
        PowerMockito.verifyPrivate(foo).invoke("hello", eq("User"));
    }
}

class Foo {
    public void sayHello() {
        System.out.println(hello("User"));
    }

    private String hello(String user) {
        return "Hello " + user;
    }
}