2015-03-03 18 views
0

JMockit不返回Integer設置爲期望返回值。jmockit問題當模擬類包含方法返回整數

public interface Foo { 
    Integer getInt(); 
} 

@Test 
public void test(@Mocked final Foo foo) { 
    final Integer anyInt = 3; 
    new Expectations() {{ 
     foo.getInt(); result = anyInt; 
    }}; 
    assertThat(foo.getInt(), equalTo(anyInt)); 
} 

失敗消息:

java.lang.AssertionError: 
Expected: <3> 
    but: was <0> 

任何想法,爲什麼?

JMockit 1.14

由於

回答

1

的JMockit期望API具有一組any字段參數匹配,包括anyInt的。因此,出現在期望塊內的「anyInt」是該字段,而不是的同名本地變量。

(如果你使用的是體面的Java IDE,它應該顯示用不同的顏色比用於局部變量領域,使錯誤很容易被發現。)

+0

大聲笑,非常感謝! – beluchin 2015-03-05 14:11:46