1
IamRequestImpl.javamockito/powermockito를 사용하여 IamRequest impl 클래스를 조롱하는 방법은 무엇입니까?
public class IamRequestImpl<E> extends IamRequest {
public IamRequestImpl(Iam iam, String s, String s1, Object o, Class aClass) {
super(iam, s, s1, o, aClass);
}
}
GcsHelper.java
public <T> T getServiceAccountKey(IamRequestInitializer req, Iam iam, String requestString,
String api) throws IOException {
IamRequestImpl<String> iamRequestImpl= new IamRequestImpl<String>(iam, HttpMethods.POST, requestString, String.class,
ServiceAccountKey.class);
iamRequestImpl.setKey(api);
iamRequestImpl.setFields(SchedulerConstants.JSON_KEY_FIELDS);
req.initializeJsonRequest(iamRequestImpl);
return (T) request.execute();
}
GCSHelperTest.java
@RunWith(PowerMockRunner.class)
@PrepareForTest({ IamRequestImpl.class, ServiceAccountKey.class})
@Test
public void testGetServiceAccountKeyOnSuccess() throws Exception{
IamRequestInitializer mockIamRequestInitializer = Mockito.mock(IamRequestInitializer.class);
IamRequestImpl<String> mockIamRequestImpl = PowerMockito.mock(IamRequestImpl.class);
PowerMockito.whenNew(IamRequestImpl.class).withAnyArguments().thenReturn(mockIamRequestImpl);
when(mockIamRequestImpl.setKey("apiKey")).thenReturn(mockIamRequestImpl);
when(mockIamRequestImpl.setFields("apiKey")).thenReturn(mockIamRequestImpl);
Mockito.doNothing().when(mockIamRequestInitializer).initializeJsonRequest(mockIamRequestImpl);
spyGCSUtils.getServiceAccountKey(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
}
iamRequestImpl
로 NullPointerException이 대향 testGetServiceAccountKeyOnSuccess
테스트 케이스 조롱되지 실행.
때문에 당신이 처음에 조롱해서는 안 기본적으로 구조체처럼 보인다. –
그러면이 시나리오에 대한 테스트 사례를 어떻게 작성할 수 있습니까? – Extreme
실제 문자열과 객체를 지정하면됩니다. –