EasyMock Void 方法 - expectLastCall()

有时,我们想要嘲笑VALID方法。EasyMockExpect()方法不能用于模拟空方法。但是,我们可以结合使用expectLastCall()andAnswer()来模拟void方法。

EasyMock空方法

当我们使用expectLastCall()andAnswer()模拟void方法时,我们可以使用getCurrentArguments()来获取传递给方法的参数,并对其执行一些操作。最后,我们必须返回NULL ,因为我们模拟的是一个空方法。假设我们有一个实用程序类,如下所示:

1package com.journaldev.utils;
2
3public class StringUtils {
4
5    public void print(String s) {
6    	System.out.println(s);
7    }
8}

以下是使用EasyMock模拟空方法print()的代码。

 1package com.journaldev.easymock;
 2
 3import static org.easymock.EasyMock.*;
 4
 5import org.junit.jupiter.api.Test;
 6
 7import com.journaldev.utils.StringUtils;
 8
 9public class EasyMockVoidMethodExample {
10
11  @Test
12  public void test() {
13    StringUtils mock = mock(StringUtils.class);
14
15    mock.print(anyString());
16    expectLastCall().andAnswer(() -> {
17      System.out.println("Mock Argument = "
18          +getCurrentArguments()[0]);
19      return null;
20    }).times(2);
21    replay(mock);
22
23    mock.print("Java");
24    mock.print("Python");
25    verify(mock);
26  }
27}

下图显示了执行上面的JUnit测试时的控制台输出。轻松模拟无效method

expectLastCall().andVid()

如果我们只想模拟空方法,不想执行任何逻辑,那么在被模拟的对象上调用空方法后,就可以直接使用expectLastCall().andVid()

您可以从我们的giHub Repository.]签出完整的项目和更多EasyMock示例

Published At
Categories with 技术
Tagged with
comments powered by Disqus