在 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