📜  EasyMock-添加行为(1)

📅  最后修改于: 2023-12-03 15:14:50.002000             🧑  作者: Mango

EasyMock-添加行为

EasyMock是一个Java Mocking框架,可以模拟Java程序中的对象,让程序员更加容易的写出自动化测试代码。添加行为是EasyMock中的一个重要功能,可以让程序员指定所要模拟对象的行为并检查相应的请求是否被发出。

添加行为的基本步骤

EasyMock的使用非常简单,一般需要经过以下几个步骤:

  1. 创建所要模拟的对象
  2. 设置对象的行为
  3. 重放对象的行为
  4. 检查所要测试的代码是否按照预期执行
创建所要模拟的对象

在EasyMock中创建所要模拟的对象非常简单,只需要使用EasyMock.createMock(Object.class)方法即可。以下是一个示例代码:

    List<String> mockedList = EasyMock.createMock(List.class);
设置对象的行为

在创建Mock对象之后,就可以指定所要模拟的对象的行为。为了方便起见,EasyMock提供了两种方式来指定行为:

使用EasyMock预设值

使用EasyMock预设值的方式比较简单,只需要使用EasyMock.expect()方法和预设值即可,以下是一个示例:

    EasyMock.expect(mockedList.size()).andReturn(0);
    EasyMock.expect(mockedList.add("Foo")).andReturn(true);

使用EasyMock自定义行为

除了使用EasyMock预设值外,我们还可以使用EasyMock自定义行为来模拟对象的行为。在EasyMock中,我们可以使用 IAnswer 和 IExpectationSetters 接口来模拟对象的行为。

以下是一个使用IAnswer接口的示例:

    EasyMock.expect(mockedList.get(0)).andAnswer(new IAnswer<String>() {
        @Override
        public String answer() throws Throwable {
            return "first";
        }
    });

以下是一个使用IExpectationSetters接口的示例:

    EasyMock.expect(mockedList.get(1)).andStubReturn("second");
重放对象的行为

全部指定好所要模拟对象的行为之后,需要调用EasyMock.replay()方法来重放对象的行为。以下是一个示例代码:

    EasyMock.replay(mockedList);
检查所要测试的代码是否按照预期执行

重放对象的行为之后,就可以开始执行所要测试的代码了。在测试代码执行完毕后,需要调用EasyMock.verify()方法来检查所要测试的代码是否按照预期执行。以下是一个示例代码:

    Assert.assertEquals(mockedList.size(), 0);
    Assert.assertTrue(mockedList.add("Foo"));
    Assert.assertEquals(mockedList.get(0), "first");
    Assert.assertEquals(mockedList.get(1), "second");

    EasyMock.verify(mockedList);
总结

EasyMock可以模拟Java程序中的对象,让程序员更加容易的写出自动化测试代码。添加行为是EasyMock中的一个重要功能,可以让程序员指定所要模拟对象的行为并检查相应的请求是否被发出。EasyMock使用非常简单,一般需要经过以下几个步骤:创建所要模拟的对象、设置对象的行为、重放对象的行为以及检查所要测试的代码是否按照预期执行。