例如。
我有一堂课“ MyClass”
MyClass {
ArrayList<String> as;
public ArrayList<String> getArrayList(){
return as;
}
}
在我的代码中,我有:
MyClass myClass = new MyClass();
String a = myClass.getArrayList().get(0);
在我的测试代码中,我想模拟MyClass并使String“ a”等于“ 123”。
所以我尝试:
MyClass myClass = mock(MyClass.class);
when(myClass.getArrayList().get(0)).thenReturn("123");
但这不起作用。有人知道怎么修这个东西吗?
最佳答案
尝试这个:
MyClass myClass = mock(MyClass.class);
List<String> arrayList = new ArrayList<String>();
arrayList.add("123");
when(myClass.getArrayList()).thenReturn(arrayList);
问题是在代码中您在模拟数组,而不是“ myClass”。
myClass只知道getArrayList,之后不知道如何与之交互。