2016-11-07 44 views
0

私はJMockitを初めて使用していて、2回目の実行時にJavaメソッドをモックし、呼び出されたときに初めて無視します。JMockit - 2回目をモックして初めて無視する

例「2回目」の文字列を返すときに、以下のようにrunningMethod()をモックして他の操作を実行したいとします。

@Mock publicMethod() 
{ 
//do something if calling runningMethod() 2nd time. 
} 


int count = 1; 
public String runningMethod() 

{ 

if (count == 1) return "first time"; 

if (count == 2) return "second time"; 

i++; 

return "some answers"; 
} 

親切に支援します。

答えて

0

あなたの答えを見つけることができます。

public interface ExpectationsCollaborator{ 
    String methodReturnsString(); 
    int methodReturnsInt(); 
} 

@Test 
public void testResultAndReturns(@Mocked Foo mock){ 
    new StrictExpectations() {{ 
     mock.methodReturnsString(); 
     result = "foo"; 
     result = new Exception(); 
     result = "bar"; 
     mock.methodReturnsInt(); result = new int[] { 1, 2, 3 }; 
     mock.methodReturnsString(); returns("foo", "bar"); 
     mock.methodReturnsInt(); result = 1; 
    }}; 

    assertEquals("Should return foo", "foo", mock.methodReturnsString()); 
    try { 
     mock.methodReturnsString(); 
    } catch (Exception e) { } 

    assertEquals("Should return bar", "bar", mock.methodReturnsString()); 
    assertEquals("Should return 1", 1, mock.methodReturnsInt()); 
    assertEquals("Should return 2", 2, mock.methodReturnsInt()); 
    assertEquals("Should return 3", 3, mock.methodReturnsInt()); 
    assertEquals("Should return foo", "foo", mock.methodReturnsString()); 
    assertEquals("Should return bar", "bar", mock.methodReturnsString()); 
    assertEquals("Should return 1", 1, mock.methodReturnsInt()); 
} 
http://www.baeldung.com/jmockit-expectations

が、ここでは、その記事から関連するコードです

関連する問題