首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EasyMock,andReturn a capture

EasyMock,andReturn a capture
EN

Stack Overflow用户
提问于 2010-08-17 04:56:14
回答 1查看 2.5K关注 0票数 0

假设我想用下面的签名模拟一个方法:

代码语言:javascript
复制
public A foo(A a)

我希望foo以某种方式被嘲笑,即它返回它接收到的内容(即相同的实例a)

我尝试了以下几种方法,但都没有成功:

代码语言:javascript
复制
Capture<A> capture = new Capture();
expect(myclass.foo(capture)).andReturn(capture.getValue());

这不起作用,因为调用getValue()时捕获仍然为空。

有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2010-08-17 20:10:37

代码语言:javascript
复制
public class A {

    public <A> A foo(A a) {
        return null;
    }

    public static void main(String[] args) throws Exception {
        A mock = createNiceMock(A.class);

        expect(mock.foo(anyObject())).andAnswer(new IAnswer<Object>() {
            @Override
            public Object answer() throws Throwable {
                return EasyMock.getCurrentArguments()[0];
            }
        }).anyTimes();

        replay(mock);

        System.out.println(mock.foo("1"));
        System.out.println(mock.foo(2L));
    }
}

打印输出:

代码语言:javascript
复制
1
2
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3497261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档