首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMockit - returnsFirstArg等价

JMockit - returnsFirstArg等价
EN

Stack Overflow用户
提问于 2014-10-27 13:47:18
回答 1查看 281关注 0票数 1

我必须使用jmockit来模拟一个方法,它返回与我传递的参数相同的参数。对于Mockito,我使用了AdditionalAnswers.returnsFirstArg:

代码语言:javascript
复制
PowerMockito.when(entityManager.merge((Request)Mockito.any())).then(AdditionalAnswers.returnsFirstArg());

我怎么才能用jmockit写这个?

代码语言:javascript
复制
new Expectations() {
        {
            entityManager.merge((Request) any);
            returns(????);
        }
    };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-27 17:47:02

JMockit没有这个现成的特性,但是可以通过一个可重用的Delegate类来实现它:

代码语言:javascript
复制
class FirstArgument implements Delegate<Object> {
    Object delegate(Invocation inv) { return inv.getInvokedArguments()[0]; }
}

@Mocked EntityManager entityManager;

@Test
public void expectationRecordedToReturnAnArgument()
{
    new Expectations() {{
        entityManager.merge(any);
        result = new FirstArgument();
    }};

    // From the code under test:
    EntityClass entity = new EntityClass();
    EntityClass merged = entityManager.merge(entity);

    assertSame(entity, merged);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26589011

复制
相关文章

相似问题

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