例如。

我有一堂课“ 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,之后不知道如何与之交互。

09-04 07:52
查看更多