{"id":24370131,"url":"https://github.com/oscript-library/asserts","last_synced_at":"2026-03-17T14:00:09.250Z","repository":{"id":56439049,"uuid":"67448638","full_name":"oscript-library/asserts","owner":"oscript-library","description":"Библиотека утверждений (assertions) для 1Script","archived":false,"fork":false,"pushed_at":"2025-11-27T02:02:06.000Z","size":1425,"stargazers_count":13,"open_issues_count":2,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-12-28T00:59:57.427Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oscript-library.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-09-05T20:20:59.000Z","updated_at":"2025-11-27T02:01:34.000Z","dependencies_parsed_at":"2025-12-26T14:03:01.671Z","dependency_job_id":null,"html_url":"https://github.com/oscript-library/asserts","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/oscript-library/asserts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fasserts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fasserts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fasserts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fasserts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oscript-library","download_url":"https://codeload.github.com/oscript-library/asserts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fasserts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30625479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T11:26:08.186Z","status":"ssl_error","status_checked_at":"2026-03-17T11:24:37.311Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-19T04:12:45.093Z","updated_at":"2026-03-17T14:00:09.239Z","avatar_url":"https://github.com/oscript-library.png","language":"1C Enterprise","readme":"# Утверждения\n\n[![Used by](https://litrosbadges.ru/package/asserts.svg)](https://litrosbadges.ru/package/asserts)\n\nДобавляет в скрипт функционал \"Утверждений\" (assertions). Возможны 2 стиля использования:\n\n* **Модуль \"Утверждения\"** - утверждения в стиле фреймворка xUnitFor1C\n* **Свойство глобального контекста \"Ожидаем\"** - [fluent-API утверждений в стиле BDD](http://habrahabr.ru/post/260013/)\n\n## Краткий пример\n\n```bsl\nМояПеременная = ВычислитьЧтоТоТам(); \n\n// xUnit style        \nУтверждения.ПроверитьРавенство(1, МояПеременная, \"Моя переменная должна быть строго равна 1\");\n\n// BDD style\nОжидаем.Что(МояПеременная).Равно(1);\n```\n\n## Модуль \"Ожидаем\"\n\nBDD стиль предоставляет fluent API для создания более читаемых утверждений.\n\n### Базовый синтаксис\n\n```bsl\nОжидаем.Что(ПроверяемоеЗначение).МетодПроверки(ПараметрыПроверки);\n```\n\n### Отрицание\n\n#### `Не_()` / `ЭтоНе()`\n\nИнвертирует результат следующей проверки.\n\n```bsl\nОжидаем.Что(Значение).Не_().Равно(0);\nОжидаем.Что(Строка).ЭтоНе().Заполнено();\n```\n\n### Логические проверки\n\n#### `ЭтоИстина()` / `ЕстьИстина()`\n\nПроверяет, что значение равно `Истина`.\n\n```bsl\nОжидаем.Что(УсловиеВыполнено).ЭтоИстина();\n```\n\n#### `ЭтоЛожь()` / `ЕстьЛожь()`\n\nПроверяет, что значение равно `Ложь`.\n\n```bsl\nОжидаем.Что(ОшибкаВозникла).ЭтоЛожь();\n```\n\n#### `Равно(ОжидаемоеЗначение)`\n\nПроверяет равенство значений.\n\n```bsl\nОжидаем.Что(Результат).Равно(42);\nОжидаем.Что(Статус).Равно(\"Готов\");\n```\n\n### Числовые сравнения в BDD\n\n#### `Больше(МеньшееЗначение)`\n\nПроверяет, что значение больше указанного.\n\n```bsl\nОжидаем.Что(Количество).Больше(0);\n```\n\n#### `БольшеИлиРавно(МеньшееИлиРавноеЗначение)` / `Минимум(МинимальноеЗначение)`\n\nПроверяет, что значение больше или равно указанному.\n\n```bsl\nОжидаем.Что(Возраст).БольшеИлиРавно(18);\nОжидаем.Что(Зарплата).Минимум(10000);\n```\n\n#### `Меньше(БольшееЗначение)`\n\nПроверяет, что значение меньше указанного.\n\n```bsl\nОжидаем.Что(ВремяОтклика).Меньше(1000);\n```\n\n#### `МеньшеИлиРавно(БольшееИлиРавноеЗначение)` / `Максимум(МаксимальноеЗначение)`\n\nПроверяет, что значение меньше или равно указанному.\n\n```bsl\nОжидаем.Что(Оценка).МеньшеИлиРавно(10);\nОжидаем.Что(Размер).Максимум(1024);\n```\n\n#### `Между(НачальноеЗначение, КонечноеЗначение)`\n\nПроверяет, что значение находится в указанном диапазоне.\n\n```bsl\nОжидаем.Что(Процент).Между(0, 100);\n```\n\n### Проверки существования и заполненности\n\n#### `Заполнено()`\n\nПроверяет, что значение заполнено.\n\n```bsl\nОжидаем.Что(НомерЗаказа).Заполнено();\n```\n\n#### `Существует()`\n\nПроверяет, что значение не равно `Неопределено` и не равно `Null`.\n\n```bsl\nОжидаем.Что(НайденныйЭлемент).Существует();\n```\n\n#### `ЭтоНеопределено()` / `ЕстьНеопределено()`\n\nПроверяет, что значение равно `Неопределено`.\n\n```bsl\nОжидаем.Что(НеинициализированнаяПеременная).ЭтоНеопределено();\n```\n\n#### `ЭтоNull()` / `ЕстьNull()`\n\nПроверяет, что значение равно `Null`.\n\n```bsl\nОжидаем.Что(ПустаяСсылка).ЭтоNull();\n```\n\n### Проверки типов в BDD\n\n#### `ИмеетТип(ТипИлиИмяТипа)`\n\nПроверяет соответствие типа значения ожидаемому.\n\n```bsl\nОжидаем.Что(МойОбъект).ИмеетТип(\"Структура\");\nОжидаем.Что(СписокЗначений).ИмеетТип(Тип(\"Массив\"));\n```\n\n### Работа с коллекциями\n\n#### `Содержит(ИскомоеЗначение)`\n\nПроверяет содержание элемента в коллекции или подстроки в строке.\n\n```bsl\n// Для строк\nОжидаем.Что(ТекстОшибки).Содержит(\"не найден\");\n\n// Для массивов\nОжидаем.Что(СписокФайлов).Содержит(\"config.json\");\n\n// Для структур/соответствий - проверяет значения\nОжидаем.Что(Настройки).Содержит(\"Администратор\");\n```\n\n#### `ИмеетДлину(ОжидаемаяДлина)`\n\nПроверяет длину строки или количество элементов в коллекции.\n\n```bsl\nОжидаем.Что(Пароль).ИмеетДлину(8);\nОжидаем.Что(МассивДанных).ИмеетДлину(5);\n```\n\n### Проверки методов и исключений\n\n#### `ИмеетМетод(ИмяМетода)`\n\nПроверяет наличие метода у объекта.\n\n```bsl\nОжидаем.Что(МойОбъект).ИмеетМетод(\"ВыполнитьОбработку\");\n```\n\n#### `Метод(ИмяМетода, ПараметрыМетода).ВыбрасываетИсключение(ФрагментИсключения)`\n\nПроверяет, что вызов метода вызывает исключение.\n\n```bsl\nОжидаем.Что(КалькуляторОбъект).Метод(\"Разделить\", Новый Массив).ВыбрасываетИсключение(\"деление на ноль\");\n```\n\n### Работа с таблицами значений\n\n#### `РавнаТаблице(ОжидаемоеЗначение, СравнитьТолькоСТруктуру = Ложь)`\n\nСравнивает таблицы значений.\n\n```bsl\nОжидаем.Что(ПолученнаяТаблица).РавнаТаблице(ОжидаемаяТаблица);\n```\n\n#### `ИмеетРавнуюСтруктуруСТаблицей(ОжидаемоеЗначение)`\n\nСравнивает только структуру таблиц (колонки и их типы).\n\n```bsl\nОжидаем.Что(НоваяТаблица).ИмеетРавнуюСтруктуруСТаблицей(ШаблонТаблицы);\n```\n\n#### `СодержитСтрокуТаблицы(ОжидаемоеЗначение)`\n\nПроверяет наличие строки с указанными значениями в таблице.\n\n```bsl\nСтрокаПоиска = Новый Структура(\"Код, Наименование\", \"001\", \"Товар1\");\nОжидаем.Что(ТаблицаТоваров).СодержитСтрокуТаблицы(СтрокаПоиска);\n```\n\n### Модификаторы сравнения\n\n#### `БезУчетаПорядкаСтрок()`\n\nИгнорирует порядок строк при сравнении таблиц.\n\n```bsl\nОжидаем.Что(Таблица1).БезУчетаПорядкаСтрок().РавнаТаблице(Таблица2);\n```\n\n#### `БезУчетаПорядкаКолонок()`\n\nИгнорирует порядок колонок при сравнении таблиц.\n\n```bsl\nОжидаем.Что(Таблица1).БезУчетаПорядкаКолонок().РавнаТаблице(Таблица2);\n```\n\n#### `БезУчетаИменКолонок()`\n\nИгнорирует имена колонок при сравнении таблиц.\n\n```bsl\nОжидаем.Что(Таблица1).БезУчетаИменКолонок().РавнаТаблице(Таблица2);\n```\n\n#### `НеУчитыватьПорядокВМассиве()`\n\nИгнорирует порядок элементов при сравнении массивов.\n\n```bsl\nОжидаем.Что(Массив1).НеУчитыватьПорядокВМассиве().РавноМассиву(Массив2);\n```\n\n### Продвинутые сравнения\n\n#### `Идентично(ОжидаемоеЗначение)`\n\nВыполняет глубокое сравнение объектов (структур, массивов, таблиц).\n\n```bsl\nОжидаем.Что(СложнаяСтруктура).Идентично(ОжидаемаяСтруктура);\n```\n\n#### `РавноМассиву(ОжидаемоеЗначение)`\n\nСравнивает массивы с детальной диагностикой различий.\n\n```bsl\nОжидаем.Что(ПолученныйМассив).РавноМассиву(ОжидаемыйМассив);\n```\n\n#### `РавноСтруктуреИлиСоответствию(ОжидаемоеЗначение)`\n\nСравнивает структуры или соответствия с детальной диагностикой.\n\n```bsl\nОжидаем.Что(НастройкиСистемы).РавноСтруктуреИлиСоответствию(ОжидаемыеНастройки);\n```\n\n## Цепочки утверждений\n\nBDD стиль поддерживает цепочки утверждений для комплексных проверок:\n\n```bsl\nОжидаем.Что(Пользователь)\n    .ИмеетТип(\"Структура\")\n    .Содержит(\"Администратор\")\n    .ИмеетДлину(3);\n\nОжидаем.Что(Таблица)\n    .БезУчетаПорядкаСтрок()\n    .БезУчетаПорядкаКолонок()\n    .РавнаТаблице(ЭталонТаблица);\n```\n## Модуль \"Утверждения\"\n\n### Основные проверки\n\n#### `Проверить(Условие, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что условие истинно.\n\n```bsl\nУтверждения.Проверить(Истина, \"Условие должно быть истинным\");\n```\n\n#### `ПроверитьИстину(Условие, ДопСообщениеОшибки = \"\")`\n\nСиноним для `Проверить()`. Проверяет, что значение равно `Истина`.\n\n```bsl\nУтверждения.ПроверитьИстину(ПолучитьБулевоЗначение());\n```\n\n#### `ПроверитьЛожь(Условие, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что значение равно `Ложь`.\n\n```bsl\nУтверждения.ПроверитьЛожь(ПользовательНеАвторизован);\n```\n\n### Сравнения значений\n\n#### `ПроверитьРавенство(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = \"\")`\n\nПроверяет равенство двух значений.\n\n```bsl\nУтверждения.ПроверитьРавенство(42, ПолучитьЧисло());\nУтверждения.ПроверитьРавенство(\"Привет\", ПолучитьСтроку());\n```\n\n#### `ПроверитьНеРавенство(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = \"\")`\n\nПроверяет неравенство двух значений.\n\n```bsl\nУтверждения.ПроверитьНеРавенство(\"\", ИмяПользователя);\n```\n\n### Числовые сравнения\n\n#### `ПроверитьБольше(Больше, Меньше, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что первое значение больше второго.\n\n```bsl\nУтверждения.ПроверитьБольше(100, ПолученнаяСумма);\n```\n\n#### `ПроверитьБольшеИлиРавно(Больше, Меньше, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что первое значение больше или равно второму.\n\n```bsl\nУтверждения.ПроверитьБольшеИлиРавно(0, КоличествоЭлементов);\n```\n\n#### `ПроверитьМеньше(ПроверяемоеЗначение1, ПроверяемоеЗначение2, СообщениеОбОшибке = \"\")`\n\nПроверяет, что первое значение меньше второго.\n\n```bsl\nУтверждения.ПроверитьМеньше(ВремяВыполнения, МаксимальноеВремя);\n```\n\n#### `ПроверитьМеньшеИлиРавно(ПроверяемоеЗначение1, ПроверяемоеЗначение2, СообщениеОбОшибке = \"\")`\n\nПроверяет, что первое значение меньше или равно второму.\n\n```bsl\nУтверждения.ПроверитьМеньшеИлиРавно(РазмерФайла, МаксимальныйРазмер);\n```\n\n### Проверки заполненности\n\n#### `ПроверитьЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что значение заполнено (с помощью `ЗначениеЗаполнено()`).\n\n```bsl\nУтверждения.ПроверитьЗаполненность(НомерДокумента);\nУтверждения.ПроверитьЗаполненность(ДатаСоздания);\n```\n\n#### `ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что значение не заполнено.\n\n```bsl\nУтверждения.ПроверитьНеЗаполненность(ДатаУдаления);\n```\n\n### Проверки типов\n\n#### `ПроверитьТип(Значение, ТипИлиИмяТипа, ДопСообщениеОшибки = \"\")`\n\nПроверяет соответствие типа значения ожидаемому типу.\n\n```bsl\nУтверждения.ПроверитьТип(ПолученныйОбъект, \"Структура\");\nУтверждения.ПроверитьТип(ПолученныйОбъект, Тип(\"Массив\"));\n```\n\n### Проверки дат\n\n#### `ПроверитьДату(Дата, Период, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что дата входит в указанный период.\n\n```bsl\nПериод = Новый Структура(\"ДатаНачала, ДатаОкончания\", НачалоДня(ТекущаяДата()), КонецДня(ТекущаяДата()));\nУтверждения.ПроверитьДату(ДатаОперации, Период);\n```\n\n#### `ПроверитьРавенствоДатСТочностью2Секунды(Дата, Дата2, ДопСообщениеОшибки = \"\")`\n\nПроверяет равенство дат с точностью до 2 секунд.\n\n```bsl\nУтверждения.ПроверитьРавенствоДатСТочностью2Секунды(ВремяВыполнения, ОжидаемоеВремя);\n```\n\n### Строковые проверки\n\n#### `ПроверитьЧтоВСтрокеСодержатсяТолькоЦифры(ИсходнаяСтрока, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что строка содержит только цифры.\n\n```bsl\nУтверждения.ПроверитьЧтоВСтрокеСодержатсяТолькоЦифры(Телефон);\n```\n\n#### `ПроверитьВхождение(Строка, ПодстрокаПоиска, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что строка содержит указанную подстроку.\n\n```bsl\nУтверждения.ПроверитьВхождение(ОтветСервера, \"success\");\n```\n\n### Проверки исключений и методов\n\n#### `ПроверитьКодСОшибкой(Код, Ошибка, ДопСообщениеОшибки = \"\")`\n\nПроверяет, что выполнение кода вызывает ошибку с указанным текстом.\n\n```bsl\nУтверждения.ПроверитьКодСОшибкой(\"ВызватьИсключение \"\"Тестовая ошибка\"\"\", \"Тестовая ошибка\");\n```\n\n#### `ПроверитьМетодСуществует(Объект, ИмяМетода, ДопСообщениеОшибки = \"\")`\n\nПроверяет наличие метода у объекта.\n\n```bsl\nУтверждения.ПроверитьМетодСуществует(МойОбъект, \"ВыполнитьОбработку\");\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscript-library%2Fasserts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foscript-library%2Fasserts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscript-library%2Fasserts/lists"}