Версия Powermockito: 1.7.4 Версия Mockito: 1.10.19 Java Версия: 8
Я пытаюсь протестировать фрагмент кода, используя powermockito, но продолжаю получать Требуется, но не вызывается ..Однако были другие взаимодействия с этой фиктивной ошибкой. Ниже мой код. Любое понимание / предложение будет высоко оценено.
Тестовый класс
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassWithStaticMethod.class)
public class PITest{
@Captor
private ArgumentCaptor<List<Something>> captor;
@Captor
private ArgumentCaptor<String> stringCaptor;
@Before
public void init(){
PowerMockito.mockStatic(ClassWithStaticMethod.class);
}
@Test
public void testMethod1(){
ClassWithoutStaticMethod object = new ClassWithoutStaticMethod();
object.method(param1, param2, param3);
PowerMockito.verifyStatic(ClassWithStaticMethod.class, Mockito.times(1));
ClassWithStaticMethod.publish(stringCaptor.capture(), captor.capture());
Assert.assertEquals(param1.getJobId(),captor.getValue().get(0).getJobId());
}
@Test
public void testMethod2(){
ClassWithoutStaticMethod object = new ClassWithoutStaticMethod();
object.method(param1, param3);
PowerMockito.verifyStatic(ClassWithStaticMethod.class, Mockito.times(1));
ClassWithStaticMethod.publish(stringCaptor.capture(), captor.capture());
Assert.assertEquals(param1.getJobId(),captor.getValue().get(0).getJobId());
}
}
ClassWithoutStaticMethod
public class ClassWithoutStaticMethod(){
private String CONSTANT;
public void method(param1, param2, param3){
List<Something> list = getSomethings(param1, param2, param3);
ClassWithStaticMethod.publish(CONSTANT, list);
}
public void method(param1, param3){
Something something = getSomething(param1, param3);
ClassWithStaticMethod.publish(CONSTANT, something);
}
}
ClassWithStaticMethod
public class ClassWithStaticMethod(){
public static void publish(CONSTANT, something){
publish(CONSTANT, Collections.singletonList(something));
}
public static void publish(CONSTANT, List<Something>){
//processing logic
}
}
testMethod1
работает нормально и проходит, но когда я пытаюсь запустить testMethod2
, именно тогда начинается проблема. Вызов происходит для ClassWithoutStaticMethod , а затем для метода publi sh ClassWithStaticMethod , но тогда почему ошибка?