我必须使用jmockit来模拟一个方法,它返回与我传递的参数相同的参数。对于Mockito,我使用了AdditionalAnswers.returnsFirstArg:
PowerMockito.when(entityManager.merge((Request)Mockito.any())).then(AdditionalAnswers.returnsFirstArg());我怎么才能用jmockit写这个?
new Expectations() {
{
entityManager.merge((Request) any);
returns(????);
}
};发布于 2014-10-27 17:47:02
JMockit没有这个现成的特性,但是可以通过一个可重用的Delegate类来实现它:
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);
}https://stackoverflow.com/questions/26589011
复制相似问题