2017-03-24 9 views
0

たとえば、mokitoと一緒にjunitで連続呼び出されるメソッドを模擬する方法は?

は、私は私のコードでは、クラス「MyClassの」

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

を持っている私が持っている:

は私のテストコードで
MyClass myClass = new MyClass(); 
String a = myClass.getArrayList().get(0); 

、私はMyClassのを模擬し、「」に等しい文字列を作りたいです」 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についてのみ知っていますが、後でどのように対話するかはわかりません。

関連する問題