그 메서드를 전혀 호출 할 수없는 경우 최종 메서드에 대한 기대치를 설정하려면 어떻게해야합니까? PowerMock 조롱하는 호출을 보장하도록되어 있지만, 난 그 단계에 도달 할 수 없습니다Powermock/EasyMock : 예외를 던질 최종 메서드에 대한 기대 설정
WithFinal.java :
public class WithFinal {
public final void finalMethod() {
throw new RuntimeException();
}
}
CallsFinal.java :
public class CallsFinal {
private WithFinal withFinal;
public CallsFinal(WithFinal withFinal) {
this.withFinal = withFinal;
}
public void callFinal() {
withFinal.finalMethod();
}
}
PowerMockTest.java :
import org.easymock.EasyMock;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.core.classloader.annotations.PrepareForTest;
import static org.powermock.api.easymock.PowerMock.*;
@RunWith(PowerMockRunner.class)
@PrepareForTest(CallsFinal.class)
public class PowerMockTest {
@Test public void testFinal() {
WithFinal mock = createMock(WithFinal.class);
CallsFinal callsFinal = new CallsFinal(mock);
mock.finalMethod();
EasyMock.expectLastCall().atLeastOnce();
replay(mock);
callsFinal.callFinal();
verify(mock);
}
}
나는 어,
mock.finalMethod()
에 최초의 호출에
RuntimeException
를 얻을 수 ich는 의미가 있지만, PowerMock의 모든 점이이를 가능하게하는 것이라고 생각했습니다.
'CallsFinal'은 테스트하려고하는 클래스입니다. 그래서'WithFinal'을 조롱하고'finalMethod' 호출을 모의하고 싶습니다. 그렇습니다, 요점입니다. – lmm
'@PrepareForTest (WithFinal.class)'가 아니어야합니까? –
@ Rogério 예, 그렇습니다! 대답으로 해두면 받아 들일 것입니다. – lmm