1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-01-20 18:48:36 +02:00
yaxunit/docs/assertions.md
Корякин Алексей Викторович (000106721) e2ee262a36 ONECICD-555 / Документация
2022-10-04 16:39:36 +03:00

6.3 KiB

Утверждения

Каждый тестовый сценарий должен проверить результат работы тестируемого метода, будь то функция или процедура.

Для написания таких проверок реализован механизм утверждений, позволяющий в лаконичной форме описать свои ожидания, требования к результату.

Работу с утверждениями реализует модуль ЮТУтверждения.

Доступ к утверждениям обеспечивает метод ЮТест.ОжидаетЧто, который возвращает инициализированный модуль ЮТУтверждения

Особенности реализации утверждений:

  • Реализованы по модели текучих выражений, с целью повышения удобства и читаемости тестов

      ЮТест.ОжидаетЧто(Контекст)
          .ИмеетТип("Структура")
          .Свойство("ПрефиксОшибки").Равно("Контекст метода с параметрами")
          .Свойство("ИмяМетода").Заполнено().Равно("МетодБезИсключение")
          .Свойство("ПараметрыМетода").ИмеетТип("Массив").ИмеетДлину(1);
    
  • Реализован минимально необходимый набор проверок

  • Большая часть методов - это сравнения фактического и ожидаемого результатов, но есть несколько методов настройки

    • Что - устанавливает проверяемый объект. Все дальнейшие проверки будут выполняется с этим объектом
    • Метод - устанавливает имя и параметры проверяемого метода. Для проверки методов имеются утверждения ВыбрасываетИсключение и НеВыбрасываетИсключение
    • Параметр - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода
    • Свойство - устанавливает проверяемое свойство и проверяет его наличие.
      • Можно указывать вложенные свойства через точку, например, Свойство("Контекст.ИмяМетода").

      • Также, первая проверка, вызванная после этого метода, будет относиться к свойству объекта.

        Например, ЮТест.ОжидаетЧто(Контекст).Свойство("ИмяМетода").Равно("МетодБезИсключение") эквивалентно Контекст.ИмяМетода = "МетодБезИсключение"

  • Все методы имеют параметр ОписаниеПроверки для описания конкретной проверки

Примеры:

  1. Базовые проверки

    ЮТест.ОжидаетЧто(2 + 3, "2 + 3") // Используя модуль утверждений установим проверяемое значение и пояснение
      .ИмеетТип("Число") // Проверим тип
      .Заполнено() // Заполненность проверяемого значения
      .Больше(0) // Сравним с нулем
      .Равно(5); // Проверим ожидаемый результат
    
  2. Проверка сложного объекта

    Объект = ЮТОбщий.ЗначениеВМассиве("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)
    
  3. Проверка вызова метода

    ЮТУтверждения.Что(ОМ_ЮТУтверждения)
      .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
      .НеВыбрасываетИсключение()
      .НеВыбрасываетИсключение("Ожидаемое исключение");
    ЮТУтверждения.Что(ОМ_ЮТУтверждения)
      .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение", 2))
      .ВыбрасываетИсключение("Слишком много фактических параметров");
    ЮТУтверждения.Что(ОМ_ЮТУтверждения)
      .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
      .ВыбрасываетИсключение("Исключение");
    ЮТУтверждения.Что(ОМ_ЮТУтверждения)
      .Метод("МетодБезИсключение")
      .ВыбрасываетИсключение("Недостаточно фактических параметров");