2016-12-09 10 views
0

Могу ли я издеваться над методом, использующим JMockit, таким образом, чтобы он возвращал аргумент, который был передан ему?jmockit возвращает тот же объект

Рассмотрите такую ​​подпись;

public String myFunction(String abc); 

I see можно сделать это с помощью Mockito. Но возможно ли это в JMockit?

+0

Вы можете найти его проще использовать JMockit в «[Подделка] (http://jmockit.org/tutorial/Faking.html)» возможности. Однако вы можете пересмотреть свои предположения и выяснить, действительно ли это то, что вы действительно хотите сделать. – dcsohl

ответ

1

JMockit manual дает некоторые рекомендации ... Я действительно предлагаю вам прочитать его. Конструкцию вы ищете вероятно, будет выглядеть примерно так:

@Test 
public void delegatingInvocationsToACustomDelegate(@Mocked final DependencyAbc anyAbc) 
{ 
    new Expectations() {{ 
     anyAbc.myFunction(any); 
     result = new Delegate() { 
     String aDelegateMethod(String s) 
     { 
      return s; 
     } 
     }; 
    }}; 

    // assuming doSomething() here invokes myFunction()... 
    new UnitUnderTest().doSomething(); 
} 
0

JMockit может также capture arguments:

@Test 
public void testParmValue(@Mocked final Collaborator myMock) { 

    // Set the test expectation. 
    final String expected = "myExpectedParmValue"; 

    // Execute the test. 
    myMock.myFunction(expected); 

    // Evaluate the parameter passed to myFunction. 
    new Verifications() { 
     { 
      String actual; 
      myMock.myFunction(actual = withCapture()); 

      assertEquals("The parameter passed to myFunction is incorrect", expected, actual); 
     } 
    }; 
} 
+0

@Viv - Не могли бы вы выбрать ответ, который наилучшим образом отвечает вашим потребностям? Благодарю. – user6629913

+0

Спасибо за ваш ответ. Я не мог использовать withCapture() успешно, чтобы делать то, что я хотел. – ViV

 Смежные вопросы

  • Нет связанных вопросов^_^