6.3 KiB
Утверждения
Каждый тестовый сценарий должен проверить результат работы тестируемого метода, будь то функция или процедура.
Для написания таких проверок реализован механизм утверждений, позволяющий в лаконичной форме описать свои ожидания, требования к результату.
Работу с утверждениями реализует модуль ЮТУтверждения
.
Доступ к утверждениям обеспечивает метод ЮТест.ОжидаетЧто
, который возвращает инициализированный модуль ЮТУтверждения
Особенности реализации утверждений:
-
Реализованы по модели текучих выражений, с целью повышения удобства и читаемости тестов
ЮТест.ОжидаетЧто(Контекст) .ИмеетТип("Структура") .Свойство("ПрефиксОшибки").Равно("Контекст метода с параметрами") .Свойство("ИмяМетода").Заполнено().Равно("МетодБезИсключение") .Свойство("ПараметрыМетода").ИмеетТип("Массив").ИмеетДлину(1);
-
Реализован минимально необходимый набор проверок
-
Большая часть методов - это сравнения фактического и ожидаемого результатов, но есть несколько методов настройки
Что
- устанавливает проверяемый объект. Все дальнейшие проверки будут выполняется с этим объектомМетод
- устанавливает имя и параметры проверяемого метода. Для проверки методов имеются утвержденияВыбрасываетИсключение
иНеВыбрасываетИсключение
Параметр
- добавляет параметр метода. Создан для удобства установки параметров проверяемого методаСвойство
- устанавливает проверяемое свойство и проверяет его наличие.-
Можно указывать вложенные свойства через точку, например,
Свойство("Контекст.ИмяМетода")
. -
Также, первая проверка, вызванная после этого метода, будет относиться к свойству объекта.
Например,
ЮТест.ОжидаетЧто(Контекст).Свойство("ИмяМетода").Равно("МетодБезИсключение")
эквивалентноКонтекст.ИмяМетода = "МетодБезИсключение"
-
-
Все методы имеют параметр
ОписаниеПроверки
для описания конкретной проверки
Примеры:
-
Базовые проверки
ЮТест.ОжидаетЧто(2 + 3, "2 + 3") // Используя модуль утверждений установим проверяемое значение и пояснение .ИмеетТип("Число") // Проверим тип .Заполнено() // Заполненность проверяемого значения .Больше(0) // Сравним с нулем .Равно(5); // Проверим ожидаемый результат
-
Проверка сложного объекта
Объект = ЮТОбщий.ЗначениеВМассиве("1", "2", "3"); ЮТУтверждения.Что(Объект, "Проверка элементов массива") .Содержит("1") .НеСодержит(1) .Элемент(0).Равно("1") .Элемент(1).Равно("2") .Элемент(-1).Равно("3") .Свойство("[00]").Равно("1") .Свойство("[1]").Равно("2") .Свойство("[-1]").Равно("3") .НетСвойства(3) .НетСвойства("[3]"); Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2))); ЮТУтверждения.Что(Объект, "Проверка свойства элемента массива") .Свойство("[3].Первый").Равно(1) .Свойство("[3].Второй[-1]").Равно(2) .Свойство("[3].Второй[0]").Равно(2)
-
Проверка вызова метода
ЮТУтверждения.Что(ОМ_ЮТУтверждения) .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) .НеВыбрасываетИсключение() .НеВыбрасываетИсключение("Ожидаемое исключение"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение", 2)) .ВыбрасываетИсключение("Слишком много фактических параметров"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение")) .ВыбрасываетИсключение("Исключение"); ЮТУтверждения.Что(ОМ_ЮТУтверждения) .Метод("МетодБезИсключение") .ВыбрасываетИсключение("Недостаточно фактических параметров");