Макетная функция не найдена в EasyMock
Я пытаюсь построить свой первый тест EasyMock, однако у меня есть тривиальная проблема, что функция "mock" не найдена.
Вот мой довольно простой код:
package homework;
import org.easymock.EasyMockSupport;
import org.junit.Before;
import org.junit.Test;
import com.locusenergy.homework.Elevator;
public class ElevatorTest extends EasyMockSupport{
private Elevator elevator;
@Before
public void setUp() {
elevator = mock(Elevator.class);
}
@Test
public void testCallElevator() {
elevator.requestFloor(5);
}
}
Тем не менее, я получаю сообщение об ошибке, что макет не найден. Я понятия не имею, как решить эту проблему.
3 ответа
В зависимости от документации EasyMock пример должен выглядеть следующим образом:
package homework;
import org.easymock.EasyMockSupport;
import org.junit.Before;
import org.junit.Test;
import com.locusenergy.homework.Elevator;
public class ElevatorTest extends EasyMockSupport{
private Elevator elevator;
@Before
public void setUp() {
elevator = createMock(Elevator.class);
}
@Test
public void testCallElevator() {
elevator.requestFloor(5);
}
}
Как описано здесь: http://easymock.org/api/org/easymock/EasyMockSupport.html
Документы API говорят, что методы name - это createMock.
Ваш код, вероятно, будет работать так, как он есть, когда выйдет следующая версия EasyMock.
Руководство пользователя относится к mock
метод, который можно найти в основной ветке, но не в последней версии (3.3.1).
Просто делюсь другим подходом... Вы можете использовать org.easymock.IMocksControl. Ваш код будет выглядеть примерно так:
@Before
public void setUp() {
IMocksControl mocksControl = createControl();
elevator = = mocksControl.createMock(Elevator.class);
}
..... Я предпочитаю использовать IMocksControl. Как следует из названия \ api, управляет поведением связанного с ним фиктивного объекта.
Примечание: я использую easymock версии 3.1 С уважением, МБ