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);
}
}
希望最后调用().并且无返回
如果我们只想嘲笑空方法,并且不想执行任何逻辑,我们可以在模拟对象上调用空方法后使用expectLastCall().andVoid()。
您可以从我们的 GitHub 代码库中检查完整的项目以及更多 EasyMock 示例。