Как использовать assertThat Содержит любой метод заказа для сравнения списков в Junit (Java) - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу проверить ShipmentEntityBO метод, используя assertThat & Contains любой заказ. Приведенная ниже функция тестирования не работает, поскольку list вернул объект. Пожалуйста, сообщите мне.

public class ShipmentEntityBO {
    public void addShipmentEntityToList(List<ShipmentEntity> shipmentEntityList,String shipmentDetails) {
        String splited[] = shipmentDetails.split(",");
        shipmentEntityList.add(new ShipmentEntity(new Integer(splited[0]), splited[1],
                    splited[2], new Long(splited[3]), splited[4]));
    }
}

Код Junit

import java.util.ArrayList;
import java.util.Arrays;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
import static org.hamcrest.collection.IsIterableContainingInOrder.contains;

public class Junit {

    ShipmentEntityBO shipmentEntityBO;

    @Before
    public void createObjectForShipmentEntity() {
        shipmentEntityBO = new ShipmentEntityBO();  
    }

    @Test
    public void testListofShipmentEntity() {
        ArrayList<ShipmentEntity> list = new ArrayList<ShipmentEntity>();
        String details = "101,pavi,12345,8500,Toronto";
        shipmentEntityBO.addShipmentEntityToList(list, details);
        assertThat(list,containsInAnyOrder("Toronto","pavi",101,"12345",8500)); 
    }
}

1 Ответ

0 голосов
/ 05 ноября 2018

следующий код ...

String details = "101,pavi,12345,8500,Toronto";
addShipmentEntityToList(list, details);

... заполняет данную list 1 запись, которая имеет тип ShippingEntry и была заполнена из данной details

Однако ваше утверждение пытается проверить, что list содержит 5 записей, ни одна из которых не относится к типу ShipmentEntity, т. Е. "Toronto","pavi",101,"12345",8500, так что утверждение не выполняется.

Возможно, что следующее утверждение пройдет:

assertThat(list,containsInAnyOrder(new ShipmentEntity(101, "pavi", "12345", 8500L, "Toronto")));

Однако, не видя конструктора и equals() метода ShipmentEntity, я не могу быть уверен в этом. И, не зная, что вы пытаетесь сделать , трудно понять, что является правильным исправлением.

Если вышеперечисленное не работает для вас, пожалуйста:

  1. Опишите точно, что вы пытаетесь сделать, т.е. опишите цель вашего теста.
  2. Обновите ваш вопрос, включив в него конструктор и метод equals() ShipmentEntity
...