2017-03-24 87 views
0

如何嘲笑連續調用與mokito的方法?例如,

我有一個類 「MyClass的」

MyClass { 
      ArrayList<String> as; 
      public ArrayList<String> getArrayList(){ 
       return as; 
       } 
     } 

在我的代碼有:

MyClass myClass = new MyClass(); 
String a = myClass.getArrayList().get(0); 

在我的測試代碼,我想嘲笑MyClass的,使字符串 「a」 等於「 123" 。 所以我嘗試:

MyClass myClass = mock(MyClass.class); 
when(myClass.getArrayList().get(0)).thenReturn("123"); 

但這不起作用。有人知道怎麼修這個東西嗎?

+0

[模擬或存根鏈接調用]的可能重複(http://stackoverflow.com/questions/7926891/mock-or-stub-for-chained-call) – azurefrog

回答

4

試試這個:

MyClass myClass = mock(MyClass.class); 
List<String> arrayList = new ArrayList<String>(); 
arrayList.add("123"); 
when(myClass.getArrayList()).thenReturn(arrayList); 

的問題是,在你的代碼你嘲諷陣列,而不是「MyClass的」。 myClass只知道getArrayList,它不知道你如何與它進行交互。

相關問題