Skip to content

oscript-library/asserts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Утверждения

Добавляет в скрипт функционал "Утверждений" (assertions). Возможны 2 стиля использования:

Краткий пример

МояПеременная = ВычислитьЧтоТоТам(); 

// xUnit style        
Утверждения.ПроверитьРавенство(1, МояПеременная, "Моя переменная должна быть строго равна 1");

// BDD style
Ожидаем.Что(МояПеременная).Равно(1);

Модуль "Ожидаем"

BDD стиль предоставляет fluent API для создания более читаемых утверждений.

Базовый синтаксис

Ожидаем.Что(ПроверяемоеЗначение).МетодПроверки(ПараметрыПроверки);

Отрицание

Не_() / ЭтоНе()

Инвертирует результат следующей проверки.

Ожидаем.Что(Значение).Не_().Равно(0);
Ожидаем.Что(Строка).ЭтоНе().Заполнено();

Логические проверки

ЭтоИстина() / ЕстьИстина()

Проверяет, что значение равно Истина.

Ожидаем.Что(УсловиеВыполнено).ЭтоИстина();

ЭтоЛожь() / ЕстьЛожь()

Проверяет, что значение равно Ложь.

Ожидаем.Что(ОшибкаВозникла).ЭтоЛожь();

Равно(ОжидаемоеЗначение)

Проверяет равенство значений.

Ожидаем.Что(Результат).Равно(42);
Ожидаем.Что(Статус).Равно("Готов");

Числовые сравнения в BDD

Больше(МеньшееЗначение)

Проверяет, что значение больше указанного.

Ожидаем.Что(Количество).Больше(0);

БольшеИлиРавно(МеньшееИлиРавноеЗначение) / Минимум(МинимальноеЗначение)

Проверяет, что значение больше или равно указанному.

Ожидаем.Что(Возраст).БольшеИлиРавно(18);
Ожидаем.Что(Зарплата).Минимум(10000);

Меньше(БольшееЗначение)

Проверяет, что значение меньше указанного.

Ожидаем.Что(ВремяОтклика).Меньше(1000);

МеньшеИлиРавно(БольшееИлиРавноеЗначение) / Максимум(МаксимальноеЗначение)

Проверяет, что значение меньше или равно указанному.

Ожидаем.Что(Оценка).МеньшеИлиРавно(10);
Ожидаем.Что(Размер).Максимум(1024);

Между(НачальноеЗначение, КонечноеЗначение)

Проверяет, что значение находится в указанном диапазоне.

Ожидаем.Что(Процент).Между(0, 100);

Проверки существования и заполненности

Заполнено()

Проверяет, что значение заполнено.

Ожидаем.Что(НомерЗаказа).Заполнено();

Существует()

Проверяет, что значение не равно Неопределено и не равно Null.

Ожидаем.Что(НайденныйЭлемент).Существует();

ЭтоНеопределено() / ЕстьНеопределено()

Проверяет, что значение равно Неопределено.

Ожидаем.Что(НеинициализированнаяПеременная).ЭтоНеопределено();

ЭтоNull() / ЕстьNull()

Проверяет, что значение равно Null.

Ожидаем.Что(ПустаяСсылка).ЭтоNull();

Проверки типов в BDD

ИмеетТип(ТипИлиИмяТипа)

Проверяет соответствие типа значения ожидаемому.

Ожидаем.Что(МойОбъект).ИмеетТип("Структура");
Ожидаем.Что(СписокЗначений).ИмеетТип(Тип("Массив"));

Работа с коллекциями

Содержит(ИскомоеЗначение)

Проверяет содержание элемента в коллекции или подстроки в строке.

// Для строк
Ожидаем.Что(ТекстОшибки).Содержит("не найден");

// Для массивов
Ожидаем.Что(СписокФайлов).Содержит("config.json");

// Для структур/соответствий - проверяет значения
Ожидаем.Что(Настройки).Содержит("Администратор");

ИмеетДлину(ОжидаемаяДлина)

Проверяет длину строки или количество элементов в коллекции.

Ожидаем.Что(Пароль).ИмеетДлину(8);
Ожидаем.Что(МассивДанных).ИмеетДлину(5);

Проверки методов и исключений

ИмеетМетод(ИмяМетода)

Проверяет наличие метода у объекта.

Ожидаем.Что(МойОбъект).ИмеетМетод("ВыполнитьОбработку");

Метод(ИмяМетода, ПараметрыМетода).ВыбрасываетИсключение(ФрагментИсключения)

Проверяет, что вызов метода вызывает исключение.

Ожидаем.Что(КалькуляторОбъект).Метод("Разделить", Новый Массив).ВыбрасываетИсключение("деление на ноль");

Работа с таблицами значений

РавнаТаблице(ОжидаемоеЗначение, СравнитьТолькоСТруктуру = Ложь)

Сравнивает таблицы значений.

Ожидаем.Что(ПолученнаяТаблица).РавнаТаблице(ОжидаемаяТаблица);

ИмеетРавнуюСтруктуруСТаблицей(ОжидаемоеЗначение)

Сравнивает только структуру таблиц (колонки и их типы).

Ожидаем.Что(НоваяТаблица).ИмеетРавнуюСтруктуруСТаблицей(ШаблонТаблицы);

СодержитСтрокуТаблицы(ОжидаемоеЗначение)

Проверяет наличие строки с указанными значениями в таблице.

СтрокаПоиска = Новый Структура("Код, Наименование", "001", "Товар1");
Ожидаем.Что(ТаблицаТоваров).СодержитСтрокуТаблицы(СтрокаПоиска);

Модификаторы сравнения

БезУчетаПорядкаСтрок()

Игнорирует порядок строк при сравнении таблиц.

Ожидаем.Что(Таблица1).БезУчетаПорядкаСтрок().РавнаТаблице(Таблица2);

БезУчетаПорядкаКолонок()

Игнорирует порядок колонок при сравнении таблиц.

Ожидаем.Что(Таблица1).БезУчетаПорядкаКолонок().РавнаТаблице(Таблица2);

БезУчетаИменКолонок()

Игнорирует имена колонок при сравнении таблиц.

Ожидаем.Что(Таблица1).БезУчетаИменКолонок().РавнаТаблице(Таблица2);

НеУчитыватьПорядокВМассиве()

Игнорирует порядок элементов при сравнении массивов.

Ожидаем.Что(Массив1).НеУчитыватьПорядокВМассиве().РавноМассиву(Массив2);

Продвинутые сравнения

Идентично(ОжидаемоеЗначение)

Выполняет глубокое сравнение объектов (структур, массивов, таблиц).

Ожидаем.Что(СложнаяСтруктура).Идентично(ОжидаемаяСтруктура);

РавноМассиву(ОжидаемоеЗначение)

Сравнивает массивы с детальной диагностикой различий.

Ожидаем.Что(ПолученныйМассив).РавноМассиву(ОжидаемыйМассив);

РавноСтруктуреИлиСоответствию(ОжидаемоеЗначение)

Сравнивает структуры или соответствия с детальной диагностикой.

Ожидаем.Что(НастройкиСистемы).РавноСтруктуреИлиСоответствию(ОжидаемыеНастройки);

Цепочки утверждений

BDD стиль поддерживает цепочки утверждений для комплексных проверок:

Ожидаем.Что(Пользователь)
    .ИмеетТип("Структура")
    .Содержит("Администратор")
    .ИмеетДлину(3);

Ожидаем.Что(Таблица)
    .БезУчетаПорядкаСтрок()
    .БезУчетаПорядкаКолонок()
    .РавнаТаблице(ЭталонТаблица);

Модуль "Утверждения"

Основные проверки

Проверить(Условие, ДопСообщениеОшибки = "")

Проверяет, что условие истинно.

Утверждения.Проверить(Истина, "Условие должно быть истинным");

ПроверитьИстину(Условие, ДопСообщениеОшибки = "")

Синоним для Проверить(). Проверяет, что значение равно Истина.

Утверждения.ПроверитьИстину(ПолучитьБулевоЗначение());

ПроверитьЛожь(Условие, ДопСообщениеОшибки = "")

Проверяет, что значение равно Ложь.

Утверждения.ПроверитьЛожь(ПользовательНеАвторизован);

Сравнения значений

ПроверитьРавенство(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = "")

Проверяет равенство двух значений.

Утверждения.ПроверитьРавенство(42, ПолучитьЧисло());
Утверждения.ПроверитьРавенство("Привет", ПолучитьСтроку());

ПроверитьНеРавенство(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = "")

Проверяет неравенство двух значений.

Утверждения.ПроверитьНеРавенство("", ИмяПользователя);

Числовые сравнения

ПроверитьБольше(Больше, Меньше, ДопСообщениеОшибки = "")

Проверяет, что первое значение больше второго.

Утверждения.ПроверитьБольше(100, ПолученнаяСумма);

ПроверитьБольшеИлиРавно(Больше, Меньше, ДопСообщениеОшибки = "")

Проверяет, что первое значение больше или равно второму.

Утверждения.ПроверитьБольшеИлиРавно(0, КоличествоЭлементов);

ПроверитьМеньше(ПроверяемоеЗначение1, ПроверяемоеЗначение2, СообщениеОбОшибке = "")

Проверяет, что первое значение меньше второго.

Утверждения.ПроверитьМеньше(ВремяВыполнения, МаксимальноеВремя);

ПроверитьМеньшеИлиРавно(ПроверяемоеЗначение1, ПроверяемоеЗначение2, СообщениеОбОшибке = "")

Проверяет, что первое значение меньше или равно второму.

Утверждения.ПроверитьМеньшеИлиРавно(РазмерФайла, МаксимальныйРазмер);

Проверки заполненности

ПроверитьЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "")

Проверяет, что значение заполнено (с помощью ЗначениеЗаполнено()).

Утверждения.ПроверитьЗаполненность(НомерДокумента);
Утверждения.ПроверитьЗаполненность(ДатаСоздания);

ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "")

Проверяет, что значение не заполнено.

Утверждения.ПроверитьНеЗаполненность(ДатаУдаления);

Проверки типов

ПроверитьТип(Значение, ТипИлиИмяТипа, ДопСообщениеОшибки = "")

Проверяет соответствие типа значения ожидаемому типу.

Утверждения.ПроверитьТип(ПолученныйОбъект, "Структура");
Утверждения.ПроверитьТип(ПолученныйОбъект, Тип("Массив"));

Проверки дат

ПроверитьДату(Дата, Период, ДопСообщениеОшибки = "")

Проверяет, что дата входит в указанный период.

Период = Новый Структура("ДатаНачала, ДатаОкончания", НачалоДня(ТекущаяДата()), КонецДня(ТекущаяДата()));
Утверждения.ПроверитьДату(ДатаОперации, Период);

ПроверитьРавенствоДатСТочностью2Секунды(Дата, Дата2, ДопСообщениеОшибки = "")

Проверяет равенство дат с точностью до 2 секунд.

Утверждения.ПроверитьРавенствоДатСТочностью2Секунды(ВремяВыполнения, ОжидаемоеВремя);

Строковые проверки

ПроверитьЧтоВСтрокеСодержатсяТолькоЦифры(ИсходнаяСтрока, ДопСообщениеОшибки = "")

Проверяет, что строка содержит только цифры.

Утверждения.ПроверитьЧтоВСтрокеСодержатсяТолькоЦифры(Телефон);

ПроверитьВхождение(Строка, ПодстрокаПоиска, ДопСообщениеОшибки = "")

Проверяет, что строка содержит указанную подстроку.

Утверждения.ПроверитьВхождение(ОтветСервера, "success");

Проверки исключений и методов

ПроверитьКодСОшибкой(Код, Ошибка, ДопСообщениеОшибки = "")

Проверяет, что выполнение кода вызывает ошибку с указанным текстом.

Утверждения.ПроверитьКодСОшибкой("ВызватьИсключение ""Тестовая ошибка""", "Тестовая ошибка");

ПроверитьМетодСуществует(Объект, ИмяМетода, ДопСообщениеОшибки = "")

Проверяет наличие метода у объекта.

Утверждения.ПроверитьМетодСуществует(МойОбъект, "ВыполнитьОбработку");

About

Библиотека утверждений (assertions) для 1Script

Resources

Stars

Watchers

Forks

Packages

No packages published