Утверждения
Тестирование — это проверка системы на соответствие требованиям. Из этого следует, что при тестировании у нас должны быть требования к тестируемой функциональности, сформулированные ожидания.
Для описания ожиданий в тестах, использующих YAxUnit, применяется механизм утверждений, с помощью которых разработчик описывает требования к тестируемому функционалу.
Утверждения позволяют не только фиксировать ожидания, но и помогают формировать:
- более читаемый и простой тест,
- формируют "дружелюбные" и понятные сообщения об ошибках,
- прививают единообразие и сокращают количество "велосипедов".
ЮТест.ОжидаетЧто(ДанныеЗаписи)
.Свойство("Поставщик").Равно(ДанныеОбъекта.Поставщик)
.Свойство("Товары")
.ИмеетДлину(1)
.Свойство("Товары[0].НомерСтроки").Равно(2)
.Свойство("Товары[0].Товар").Равно(ДанныеОбъекта.Товары[0].Тов ар);
В результате этой проверки (ошибочной) будет выброшено следующее исключение:
Ожидали, что проверяемое значение
Поступление товара 000000001 от 12.03.2024 3:06:17
содержит свойствоТовары[0].НомерСтроки
, которое равно2
, но это не так.
А так оно будет выглядеть в EDT.
Зачем нужны утверждения YAxUnit
Основной задачей утверждений является формулирование и проверка наших ожиданий.
Например, сложение 2 и 3 должно вернуть нам 5.
Можно перефразировать это требование (ожидание) — тест ожидает, что 2 + 3
равно 5
.
При помощи утверждений это превращается в следующий код — ЮТест.ОжидаетЧто(2 + 3).Равно(5)
.
Вы можете проверить результат работы и без использования утверждений — Если 2 + 3 <> 5 Тогда ВызватьИсключение "2 + 3 <> 5";КонецЕсли;
В отличие от ручной проверки с использованием условий и исключений утверждения дают ряд преимуществ:
- Всегда, ну или почти всегда, понятные сообщения об ошибках, которые помогают локализовать причину.
- Также вам не надо ломать голову, что написать в исключении.
- Тесты получаются более читаемыми, цепочки вызовов формируют что-то вроде предложений.
- Не все проверки так просты, как в примере: есть предикаты, сравнение таблиц, проверка вложенных свойств и данных в информационной базе.
- Ошибки утверждений помечаются другим типом ошибки, это позволяет понять — упал тест (не совпало ожидание) или наш код сломался.
В итоге: утверждения — вещь поле зная, изучите и используйте их.
Возможности
- Проверки значений
- Проверки методов объекта на выброс исключений
- Проверки данных информационной базы
Это базовые методы проверки, с помощью которых вы можете проверить любое поведение (или почти любое) системы. На их основе вы можете сформировать библиотеку своих "бизнес" утверждений, заточенных под ваше решение, что облегчит вам разработку тестов.
- Используйте отступы и форматирование для улучшения читаемости.
- Не забывайте указывать описания для проверок.
- Не стоит писать проверки ради проверок, проверяйте только то, что необходимо для сценария. Слишком большой код (цепочки утверждений в частности) сложно поддерживать, при необходимости разбейте его на блоки (методы).