如何使用mokito模拟junit中的连续调用方法?

时间:2017-03-24 19:52:43

标签: java android junit android-espresso

例如。

我有一个班级" MyClass"

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

在我的代码中,我有:

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

在我的测试代码中,我想模拟MyClass并制作String&#34; a&#34;等于&#34; 123&#34;。 所以我试试:

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

但这不起作用。任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

试试这个:

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

问题是在你的代码中你是在嘲笑数组,而不是&#34; myClass&#34;。 myClass只知道getArrayList,它不知道你之后如何与它进行交互。