Мне нужно отправить arraylist с типом Person и вернуть arraylist, чтобы проверить фактическое и ожидаемое. В настоящее время я отправляю параметры, создавая вручную объекты, как показано ниже.
Comparisontest. java
public class ComparisonTest
{
@Mock
private Person person;
@Mock
private ArrayList<Person> personArrayList;
@InjectMocks
Comparison comparison;
@BeforeMethod
public void setUp()
{
MockitoAnnotations.initMocks(this);
}
@AfterMethod public void tearDown()
{
person = null;
personArrayList = null;
}
@Test public void testCompareFields()
{
ArrayList<Person> PeopleList = new ArrayList<Person>();
PeopleList.add(new Person("Alex", 56));
PeopleList.add(new Person("Thomas", 23));
PeopleList.add(new Person("John", 10));
ArrayList<Person> expectedSortedByAge = new ArrayList<Person>();
expectedSortedByAge.add(new Person("John", 10));
expectedSortedByAge.add(new Person("Thomas", 23));
expectedSortedByAge.add(new Person("Alex", 56));
ArrayList<Person> actualResult = comparison.compareFields(PeopleList);
assertEquals(expectedSortedByAge, actualResult);
}
}
Поскольку тест работает хорошо даже без Mockito, я нужно использовать Mockito и макетировать объекты.
Метод, который я тестирую, описан ниже.
сравнение. java
import java.util.Collections;
public class Comparison
{
public ArrayList<Person> compareFields(ArrayList<Person> PeopleList)
{
ArrayList<Person> a2 = new ArrayList<Person>();
Collections.sort(PeopleList, Person.personage);
for (Person person : PeopleList)
{
a2.add(person);
System.out.println(person);
}
return a2;
}
}