2016-12-09 13 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

関連する問題