PowerMockitoはAPIから、同様にプライベートメソッドを模擬する方法を提供する:
<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;
}
}
うーん、彼らはそれをより多くの類似した名前を与えていないことを奇妙な。 'verifyPrivate'は質問の一部ではありませんが、例を挙げれば私はあなたの答えを受け入れます(私はそれを自分でやっていますが、それを質問に追加するのではなく、他人の答えにするべきです)。 – ArtB
はい、私は彼らがMockitoに似ているように命名を選ぶと思います。私は要求通りに例を追加しました。 – ebaxt
ありがとう!この例は他人の利益のためであり、S.O.それほど熟練していない人にとっては良いリソースです。 – ArtB