Создайте и верните объектный массив Mockito - PullRequest
0 голосов
/ 19 апреля 2020

Мне нужно отправить 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;
  }
}
...