This is my Static Class
public class StaticClass {
public static ClassA methodCall1(String s) {
return new ClassA();
}
}
This is my ClassA class
public class ClassA {
public ArrayList<ArrayList<String>> methodCall2(String s1, String s2, String s3) {
ArrayList<ArrayList<String>> aList = new ArrayList<ArrayList<String>>();
return aList;
}
}
Currently my Test method is
@Test
public void testMethod() {
ArrayList<ArrayList<String>> lst = new ArrayList<ArrayList<String>>();
ArrayList<ArrayList<String>> aList = Mockito.spy(lst);
for(int i = 0;i<2;i++) {
aList.add(new ArrayList<String>());
}
aList.get(0).add("A");
aList.get(0).add("B");
aList.get(1).add("C");
aList.get(1).add("D");
try(MockedStatic<StaticClass> mockedstatic = Mockito.mockStatic(StaticClass.class, Answers.RETURNS_DEEP_STUBS)) {
mockedstatic.when(() -> StaticClass.methodCall1(Mockito.anyString()).methodCall2(Mockito.anyString(),Mockito.anyString(),Mockito.anyString())).thenReturn(aList);
Assert.equals(aList, StaticClass.methodCall1("anyString").methodCall2("String1","String2","String3"));
}
}
It is throwing AssertionError that size of both lists are different 2 and 0.