public class ProjectIdInitializer {
public static void setProjectId(String projectId) {
//load spring context which i want to escape in my test
}
}
public class MyService {
public Response create(){
...
ProjectIdInitializer.setProjectId("Test");
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest({ProjectIdInitializer.class})
public class MyServiceTest{
@InjectMocks
private MyService myServiceMock ;
public void testCreate() {
PowerMockito.mockStatic(ProjectIdInitializer.class);
PowerMockito.doNothing().when(ProjectIdInitializer.class, "setProjectId", Mockito.any(String.class));
// Does not work,still tries to load spring context
Response response=myServiceMock .create();
}
Как я могу убедиться, что ничего не происходит, если вызывается ProjectIdInitializer.setProjectId() из myservice?Издевательский класс, который использует статический метод void другого класса
Если оказывается, чтобы быть правдой, что только PowerMock поможет вам ... рассмотреть, если есть, если ваш проект может быть изменен ** не ** использовать статическую таким образом; и поэтому избегать PowerMock. (просто потому, что PowerMock лучше всего использовать ..., избегая его). – GhostCat