Я написал интеграционный тест, который получает XML-документ из очереди и создает объект из него, который будет сохраняться в базе данных. Теперь, чтобы быть тщательным в своем тесте, я хочу проверить все поля, заполненные xml, то есть около 20 полей. Я написал утверждение для каждого поля.Несколько утверждений в тестах интеграции
assertTrue (payload.shipmentNo == object.shipmentNo)
assertTrue (payload.shipmentEMEA.location == object.shipmentLocationMap.get(SHIPMENT_EMEA.toString()))
assertTrue (payload.shipmentAMER.location == object.shipmentLocationMap.get(SHIPMENT_AMER.toString()))
assertTrue (payload.shipmentAPAC.location == object.shipmentLocationMap.get(SHIPMENT_APAC.toString()))
assertTrue (payload.shipmentVersion == object.shipmentVersion)
assertTrue (payload.shipmentSourceId == object.shipmentSourceId)
assertTrue (payload.noOfItemsInShipment == object.noOfItemsInShipment)
assertTrue (payload.shipmentName == object.shipmentName)
assertTrue (payload.shipmentDate == object.shipmentDate)
assertTrue (payload.shipmentOwnerID == String.valueOf(object.shipmentOwnerID))
assertTrue (payload.shipmentClass == object.shipmentClass)
assertTrue ('STARTED' == object.status)
Но мне рекомендуется использовать одиночный оператор assert в тестовой папке. Мне было интересно, как я смогу это сделать, один из способов достичь - записать блок if, из которого возвращается true, только если все значения совпадают с xml, но в этом случае я теряю способность точно знать, какое поле терпит неудачу. Любые идеи, как я могу достичь обеих вещей, то есть у нас есть единый assert +, я точно знаю, какое поле не удалось.
«Но я посоветовал использовать один оператор уверенно утверждать, по TestCase» Вам плохо советовали – Raedwald
Плохой не начинает его покрывать. Вы уверены, что этот человек не после вашей работы? – Gimby
Правило, что каждый тестовый пример должен иметь только одно утверждение [глупо] (http://stackoverflow.com/a/20300843/545127). – Raedwald