我正在尝试构建我的第一个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);
}
}
但是,我收到一个错误,即找不到mock。我不知道如何解决这个问题。
答案 0 :(得分:1)
您的代码可能会在下一版本的EasyMock发布时正常工作。
用户指南引用mock
方法,该方法可在master branch中找到,但不在最新版本(3.3.1)中。
答案 1 :(得分:0)
根据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 Docs说方法名称是createMock,全部都是。
答案 2 :(得分:0)
只是分享另一种方法...... 您可以使用org.easymock.IMocksControl。 您的代码将如下所示 ....
@Before
public void setUp() {
IMocksControl mocksControl = createControl();
elevator = = mocksControl.createMock(Elevator.class);
}
..... 我更喜欢使用IMocksControl。正如名称\ api建议控制其关联的模拟对象的行为。
注意:我使用的是easymock 3.1版 问候, MB