Извиквам метод performAction със списък от обекти и проверявам същото. След като този метод бъде извикан, променям някои от "обектите".
Проверката на Mockito се проваля, казвайки, че аргументите не съвпадат (показва модифицирани обекти), но мога да видя в режим на отстраняване на грешки, че обектите са били правилни, както е необходимо.
В идеалния случай това не трябва да се случва, тъй като проверката трябва да се прилага въз основа на това кога методът е бил действително извикан. Проверката прилага ли се по време на повикване за проверка в тестовия метод, отколкото по време на извикване на макетния метод?
Тестови клас
@Test
public void test() throws Exception {
List<ABC> objects = new ArrayList<ABC>();
//populate objects.
activity.performActions(objects);
verify(activity, times(1)).doActivity(objects);
}
Метод за тестване:
public void performActions(List<ABC> objects) {
activity.doActivity(urlObjects2PerformAction);
//Modify objects
}
Грешката, която получавам, е следната (това е за пълен код. Дал съм възможно най-малкия фрагмент):
Argument(s) are different! Wanted:
activity.doActivity(
.......
......