在 EasyMock 中找不到 Mock 函数
Mock function not found in 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);
}
}
但是,我收到一条错误消息,提示找不到 mock。我不知道如何解决这个问题。
根据 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 文档说方法名称是 createMock,仅此而已。
下一个 EasyMock 版本发布时,您的代码可能会按原样运行。
用户指南指的是mock
方法,可以在master branch中找到,但在最新版本(3.3.1)中没有。
只是分享另一种方法...
您可以使用 org.easymock.IMocksControl。
您的代码如下所示
....
@Before
public void setUp() {
IMocksControl mocksControl = createControl();
elevator = = mocksControl.createMock(Elevator.class);
}
.......
我更喜欢使用 IMocksControl。正如 name\api 建议控制其关联模拟对象的行为。
注意:我使用的是easymock 3.1版
问候,
MB
我正在尝试构建我的第一个 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。我不知道如何解决这个问题。
根据 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 文档说方法名称是 createMock,仅此而已。
下一个 EasyMock 版本发布时,您的代码可能会按原样运行。
用户指南指的是mock
方法,可以在master branch中找到,但在最新版本(3.3.1)中没有。
只是分享另一种方法... 您可以使用 org.easymock.IMocksControl。 您的代码如下所示 ....
@Before
public void setUp() {
IMocksControl mocksControl = createControl();
elevator = = mocksControl.createMock(Elevator.class);
}
....... 我更喜欢使用 IMocksControl。正如 name\api 建议控制其关联模拟对象的行为。
注意:我使用的是easymock 3.1版 问候, MB