EasyMock中找不到模拟功能

时间:2015-06-01 15:14:01

标签: java unit-testing junit 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。我不知道如何解决这个问题。

3 个答案:

答案 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