Макет переопределенного метода с использованием Mockito powermokitoJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Макет переопределенного метода с использованием Mockito powermokito

Сообщение Anonymous »

Я хочу протестировать метод класса Service testB1Method2, имитируя переопределенный метод a1Method2 класса B1. Я не хочу ничего менять в классе A1 и B1. Я использую Mockito 1.9.0 и powermockito 1.4.12. Я пытаюсь использовать следующий код:

Класс UnitTestService:

Код: Выделить всё

import static org.mockito.Mockito.*;

import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.powermock.api.mockito.PowerMockito;
import org.testng.Assert;
import org.testng.annotations.Test;

public class UnitTestService {

@Mock
B1 b1;
@InjectMocks
Service service = new Service();

@Test
public void testB1Method2() throws Exception {
MockitoAnnotations.initMocks(this);
when(b1.a1Method2()).thenReturn("mockvalue");
PowerMockito.whenNew(B1.class).withArguments(Mockito.any()).thenReturn(b1);
String output = service.serviceMethod();
System.out.println("=====" + output);
Assert.assertTrue("mockvalue".equalsIgnoreCase(output), "testA1Method2 failed!");
}

}
Класс обслуживания:

Код: Выделить всё

public class Service {

public String serviceMethod() {
B1 b1 = new B1("some data");
return b1.a1Method2();
}

}
класс А1:

Код: Выделить всё

public abstract class A1 {

public A1(String data) {
//doing many thing with data
}

public String a1Method1() {
return "from a1Method1";
}

public String a1Method2() {
return "from a1Method2";
}

}
Класс B1:

Код: Выделить всё

public class B1 extends A1 {

public B1(String data) {
super(data);
}

@Override
public String a1Method1() {
return "a1Method1 from B1 class";
}

}
Я запускаю класс UnitTestService, используя testNG в eclipse. И здесь вызывается реальный метод в классе B1 a1Method2, когда он печатает «=====from a1Method2» в консоли. то есть: здесь кажется, что Mockito не может имитировать этот метод.

Какое изменение кода мне следует внести в класс UnitTestService, чтобы имитировать класс B1 a1Method2 ?

Подробнее здесь: https://stackoverflow.com/questions/397 ... owermokito
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»