gpt4 book ai didi

java - EasyMock:提供你在编译时不知道的参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:35 26 4
gpt4 key购买 nike

使用最新版本的 EasyMock,我有一个方法需要 stub 。该方法接受一个对象参数并返回 void。

stub 方法正在被我正在测试的方法调用。那里没有惊喜。我的困难在于,作为参数提供给模拟方法的对象是由我正在测试的方法创建的。

我知道我可以使用 createNiceMock() 来解决这个问题,但是有没有办法显式地取消这个方法?

示例代码:

public interface IMockMe { 
void doSomething(InnerObj obj);
}

public class TestMe {
IMockMe mockMe;

public void testThisMethod() {
InnerObj obj = new InnerObj();
mockMe.doSomething(obj);
}
}

class Tester {
@Test
public void testThatDarnedMethod() {
IMockMe mocked = EasyMock.create(IMockMe.class);

mocked.doSomething( /* what goes here? */);
EasyMock.expectLastCall();

TestMe testMe = new TestMe(mocked);
testMe.testThisMethod();

}
}

最佳答案

查看 EasyMock documentation 的“使用参数匹配器的灵活期望”部分.文档示例:

String[] documents = new String[] { "Document 1", "Document 2" };
expect(mock.voteForRemovals(aryEq(documents))).andReturn(42);

aryEq(documents) 是一个创建匹配器的调用,该匹配器将匹配具有正确内容的任何数组,而不是通过身份匹配。

在您的情况下,您可能需要 anyObject()匹配器。

关于java - EasyMock:提供你在编译时不知道的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com