EasyMock Void方法 – expectLastCall() 的解释和意思

有时候我们想嘲笑空方法。EasyMock的expect()方法无法用于嘲笑空方法。然而,我们可以使用expectLastCall()和andAnswer()来嘲笑空方法。

使用EasyMock的void方法

当我们使用expectLastCall()和andAnswer()来模拟void方法时,我们可以使用getCurrentArguments()来获取传递给方法的参数并对其执行某些操作。最后,我们必须返回null,因为我们正在模拟一个void方法。假设我们有一个实用类为:

package com.Olivia.utils;

public class StringUtils {

	public void print(String s) {
		System.out.println(s);
	}
}

这是使用EasyMock来模拟void方法print()的代码。

package com.Olivia.easymock;

import static org.easymock.EasyMock.*;

import org.junit.jupiter.api.Test;

import com.Olivia.utils.StringUtils;

public class EasyMockVoidMethodExample {

  @Test
  public void test() {
    StringUtils mock = mock(StringUtils.class);
    
    mock.print(anyString());
    expectLastCall().andAnswer(() -> {
      System.out.println("Mock Argument = "
          +getCurrentArguments()[0]);
      return null;
    }).times(2);
    replay(mock);
    
    mock.print("Java");
    mock.print("Python");
    verify(mock);
  }
}
EasyMock void method

希望最后调用().并且无返回

如果我们只想嘲笑空方法,并且不想执行任何逻辑,我们可以在模拟对象上调用空方法后使用expectLastCall().andVoid()。

您可以从我们的 GitHub 代码库中检查完整的项目以及更多 EasyMock 示例。

发表回复 0

Your email address will not be published. Required fields are marked *