私は以下を使用しています。
Powermock-mockito 1.5.12
Mockito 1.95
junit 4.11
ここに私のユーティリティクラスがあります
public void InternalUtils {
public static void sendEmail(String from, String[] to, String msg, String body) {
}
}
テスト対象のクラスの要点は次のとおりです。
public class InternalService {
public void processOrder(Order order) {
if (order.isSuccessful()) {
InternalUtils.sendEmail(...);
}
}
}
そして、ここにテストがあります:
@PrepareForTest({InternalUtils.class})
@RunWith(PowerMockRunner.class)
public class InternalService {
public void verifyEmailSend() {
mockStatic(Internalutils.class);
doNothing().when(InternalUtils, "sendEmail", anyString(), any(String.class), anyString(), anyString());
Order order = mock(Order.class);
when(order.isSuccessful()).thenReturn(true);
InternalService is = new InternalService();
verifyStatic(times(1));
is.processOrder(order);
}
}
上記のテストは失敗します。指定された検証モードはなしですが、コードによると、注文が成功した場合は電子メールを送信する必要があります.