Я новичок в AssertJ, использую его для модульного тестирования написанного кода и думал, как утверждать список.
Предположим, у нас есть список объектов-потребителей. у каждой сущности есть собственный телефон, собственный поставщик услуг, у которого есть собственное имя и имя сущности.
Теперь мы хотим утверждать, что каждая сущность из репозитория получает правильные данные, поэтому мы хотим проверить, что каждый элемент в списке имеет одинаковый телефон.
ConsumerEntity savedConsumer1 = Consumer(phone, name, serviceProvider)
List<ConsumerEntity> consumerListFromRepository = repository.findAllByPhone(phone)
Теперь я хочу проверить правильность данных, предоставленных из репозитория,
Я могу использовать это:
assertThat(consumerListFromRepository)
.extracting(ConsumerEntity::getPhone())
.containsOnly(savedConsumer1.getPhone());
Или я могу сделать это с помощью forEach (java 8):
consumerListFromRepository.forEach(consumerEntity ->
assertThat(consumerEntity.getPhone()).isEqualTo(savedConsumer1.getPhone()));
1. Какой из них быстрее / проще / читабельнее? Я выберу forEach для меньшего количества строк кода, но также для меньшей читабельности.
2. Есть ли другой способ сделать это 1liner, как foreach, но с asserThat? так что он будет удобочитаемым и простым - и без необходимости использовать EqualTo каждый
время? что-то типа:
asserThat(list).forEach........
3. Какой из них быстрее? Извлечение или для каждого?
Спасибо!