2014-10-27 33 views
1

我必須模擬一個使用jmockit的方法,它返回我傳遞的相同參數。隨着Mockito,我用AdditionalAnswers.returnsFirstArg:JMockit - returnsFirstArg相當於

PowerMockito.when(entityManager.merge((Request)Mockito.any())).then(AdditionalAnswers.returnsFirstArg()); 

我怎麼可以寫這與jmockit?

new Expectations() { 
     { 
      entityManager.merge((Request) any); 
      returns(????); 
     } 
    }; 

感謝

回答

0

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); 
}