From 84d3ed043a57960db1c50a95f1a1345a356a6953 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 27 Oct 2023 01:46:30 +0300 Subject: [PATCH] #179 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Документация --- .../user-api/assertions/assertions-base.md | 4 ++ documentation/docs/user-api/predicates.md | 59 +++++++++++-------- 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/documentation/docs/user-api/assertions/assertions-base.md b/documentation/docs/user-api/assertions/assertions-base.md index 6501b876..dff8c667 100644 --- a/documentation/docs/user-api/assertions/assertions-base.md +++ b/documentation/docs/user-api/assertions/assertions-base.md @@ -111,6 +111,10 @@ tags: [Начало, Утверждения] ### Проверка на соответствие набору условий, предикату * `СоответствуетПредикату` - проверяет, что объект или его свойство соответствует набору условий +* `КаждыйЭлементСоответствуетПредикату` - проверяет, что элементы коллекции соответствуют переданным условиям +* `ЛюбойЭлементСоответствуетПредикату` - проверяет, что коллекция содержит элемент, который соответствует переданным условиям +* `Содержит` - проверяемая коллекция должна содержать элемент, который соответствует переданным условиям +* `НеСодержит` - проверяемая коллекция не должна содержать элемент, который соответствует переданным условиям ### Проверка методов объекта diff --git a/documentation/docs/user-api/predicates.md b/documentation/docs/user-api/predicates.md index 01a285b8..1f11dd00 100644 --- a/documentation/docs/user-api/predicates.md +++ b/documentation/docs/user-api/predicates.md @@ -9,29 +9,29 @@ tags: [Начало, Предикаты, Утверждения, Запросы, ```bsl Процедура АктуализацияУведомлений() Экспорт - - ИмяРегистра = "РегистрСведений.ОповещенияПользователя"; - Объект = ТестовыеДанные.Объект(); - - УсловиеУведомления = ЮТест.Предикат() - .Реквизит("Источник").Равно(Объект) - .Реквизит("ТипОповещения").Равно(Справочники.ТипыОповещенийПользователя.Уведомление1) - .Получить(); - - ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) - .НеСодержитЗаписи(УсловиеУведомления); - - УведомленияВызовСервера.АктуализацияУведомлений(); - - ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) - .СодержитЗаписи(УсловиеУведомления); - - ДанныеУведомления = ЮТЗапросы.Запись(ИмяРегистра, УсловиеУведомления); - - ЮТест.ОжидаетЧто(ДанныеУведомления) - .Свойство("Прочитано").ЭтоЛожь() - .Свойство("Пользователь").Равно(Справочники.ГруппыОповещенийПользователей.Инженер); - + + ИмяРегистра = "РегистрСведений.ОповещенияПользователя"; + Объект = ТестовыеДанные.Объект(); + + УсловиеУведомления = ЮТест.Предикат() + .Реквизит("Источник").Равно(Объект) + .Реквизит("ТипОповещения").Равно(Справочники.ТипыОповещенийПользователя.Уведомление1) + .Получить(); + + ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) + .НеСодержитЗаписи(УсловиеУведомления); + + УведомленияВызовСервера.АктуализацияУведомлений(); + + ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) + .СодержитЗаписи(УсловиеУведомления); + + ДанныеУведомления = ЮТЗапросы.Запись(ИмяРегистра, УсловиеУведомления); + + ЮТест.ОжидаетЧто(ДанныеУведомления) + .Свойство("Прочитано").ЭтоЛожь() + .Свойство("Пользователь").Равно(Справочники.ГруппыОповещенийПользователей.Инженер); + КонецПроцедуры ``` @@ -49,10 +49,19 @@ tags: [Начало, Предикаты, Утверждения, Запросы, ЮТест.ОжидаетЧто(Коллекция) .ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат() .Реквизит("Число").Равно(2)); // Проверят, что в коллекции есть элементы с реквизитом `Число`, которое равно `2` + + ЮТест.ОжидаетЧто(Коллекция) + .Содержит(ЮТест.Предикат() + .Реквизит("Число").Равно(2)); // Тоже самое, что и проверка выше ЮТест.ОжидаетЧто(Коллекция) .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат() .Заполнено().ИмеетТип("Массив")); // Проверят, что каждый элемент коллекции это заполненный массив + + ЮТест.ОжидаетЧто(Коллекция) + .НеСодержит(ЮТест.Предикат() + .Реквизит("Число").Равно(2)); // Проверят, что в коллекции нет элементов с реквизитом `Число`, которое равно `2` + ``` * Описания параметров метода при мокировании @@ -131,6 +140,6 @@ tags: [Начало, Предикаты, Утверждения, Запросы, ### Особенности реализации -Сам модуль предикатов используется только для формирования утверждений/условий. +Сам модуль предикатов используется только для формирования утверждений/условий. -Реализацией проверок и формированием условий занимаются другие модули и возможна ситуация, когда некоторые предикаты еще не реализованы или не поддерживаются каким-либо механизмом. Например, проверка заполненности не поддерживается запросами. \ No newline at end of file +Реализацией проверок и формированием условий занимаются другие модули и возможна ситуация, когда некоторые предикаты еще не реализованы или не поддерживаются каким-либо механизмом. Например, проверка заполненности не поддерживается запросами.