1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-17 20:48:01 +02:00
Использование предикатов в утверждениях
This commit is contained in:
alkoleft 2023-09-09 00:25:29 +03:00
parent 3a7ca2f50a
commit 41ca425d53
4 changed files with 116 additions and 282 deletions

View File

@ -363,10 +363,15 @@
КонецФункции
Процедура ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, Ошибка) Экспорт
Процедура ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, Знач Ошибка, ОписаниеПроверки = Неопределено) Экспорт
Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда
Ошибка = ПодробноеПредставлениеОшибки(Ошибка);
КонецЕсли;
ТекстОшибки = ДобавитьОписания(Ошибка, ОписаниеПроверки);
РезультатПроверки.Успешно = Ложь;
РезультатПроверки.Сообщения.Добавить(Ошибка);
РезультатПроверки.Сообщения.Добавить(ТекстОшибки);
КонецПроцедуры

View File

@ -215,8 +215,8 @@
ФактическаяДлина = ДлинаЗначения(ПроверяемоеЗначение);
Если ФактическаяДлина = Неопределено Тогда
ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки);
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
Возврат;
КонецЕсли;
@ -236,8 +236,8 @@
Результат = НайтиЗначение(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение);
Если Результат = Неопределено Тогда
ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки);
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
Возврат;
КонецЕсли;
@ -259,8 +259,8 @@
СоответствуетШаблону = СоответствуетШаблону(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение);
Если СоответствуетШаблону = Неопределено Тогда
ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки);
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
Возврат;
КонецЕсли;

View File

@ -205,11 +205,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция ИмеетСвойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
НормализованныйПутьКСвойству(ПроверяемоеЗначение, ИмяСвойства, Истина);
ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетСвойство, ИмяСвойства, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -226,14 +222,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция НеИмеетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Если ЗначениеСодержитСвойство(ПроверяемоеЗначение, ИмяСвойства) Тогда
СгенерироватьОшибкуСравнения(СтрШаблон("не содержит свойство `%1`", ИмяСвойства), Неопределено, ИмяСвойства);
КонецЕсли;
ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетСвойство, ИмяСвойства, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -338,9 +327,8 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
СравнитьЗначения(Контекст, ОжидаемоеЗначение, Ложь, СтрШаблон("равно `%1`", ОжидаемоеЗначение));
ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина);
ПроверитьПредикат(ЮТПредикаты.Выражения().Равно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения);
Возврат ЮТУтверждения;
КонецФункции
@ -358,9 +346,8 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция НеРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
СравнитьЗначения(Контекст, ОжидаемоеЗначение, Истина, СтрШаблон("равно `%1`", ОжидаемоеЗначение));
ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина);
ПроверитьПредикат(ЮТПредикаты.Выражения().НеРавно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения);
Возврат ЮТУтверждения;
КонецФункции
@ -375,19 +362,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Больше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = ПроверяемоеЗначение > ОжидаемоеЗначение;
Исключение
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Если Не Результат Тогда
СгенерироватьОшибкуСравнения(СтрШаблон("больше чем `%1`", ОжидаемоеЗначение), ПроверяемоеЗначение, ОжидаемоеЗначение);
КонецЕсли;
ПроверитьПредикат(ЮТПредикаты.Выражения().Больше, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -402,19 +377,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция БольшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = ПроверяемоеЗначение >= ОжидаемоеЗначение;
Исключение
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Если Не Результат Тогда
СгенерироватьОшибкуСравнения(СтрШаблон("больше или равно `%1`", ОжидаемоеЗначение), ПроверяемоеЗначение, ОжидаемоеЗначение);
КонецЕсли;
ПроверитьПредикат(ЮТПредикаты.Выражения().БольшеРавно, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -429,19 +392,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Меньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = ПроверяемоеЗначение < ОжидаемоеЗначение;
Исключение
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Если Не Результат Тогда
СгенерироватьОшибкуСравнения(СтрШаблон("меньше чем `%1`", ОжидаемоеЗначение), ПроверяемоеЗначение, ОжидаемоеЗначение);
КонецЕсли;
ПроверитьПредикат(ЮТПредикаты.Выражения().Меньше, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -456,20 +407,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция МеньшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = ПроверяемоеЗначение <= ОжидаемоеЗначение;
Исключение
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Если Не Результат Тогда
Сообщение = СтрШаблон("меньше или равно `%1`", ОжидаемоеЗначение);
СгенерироватьОшибкуСравнения(Сообщение, ПроверяемоеЗначение, ОжидаемоеЗначение);
КонецЕсли;
ПроверитьПредикат(ЮТПредикаты.Выражения().МеньшеРавно, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -483,9 +421,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Заполнено(Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьЗаполненность(Контекст, Ложь);
ПроверитьПредикат(ЮТПредикаты.Выражения().Заполнено, , ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -499,9 +435,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция НеЗаполнено(Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьЗаполненность(Контекст, Истина);
ПроверитьПредикат(ЮТПредикаты.Выражения().НеЗаполнено, , ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -612,9 +546,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция ИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьТипПараметра(Контекст, ОжидаемоеЗначение, Ложь);
ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -629,9 +561,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция НеИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьТипПараметра(Контекст, ОжидаемоеЗначение, Истина);
ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -659,9 +589,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Содержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьСодержание(Контекст, ОжидаемоеЗначение, Ложь);
ПроверитьПредикат(ЮТПредикаты.Выражения().Содержит, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -689,9 +617,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция НеСодержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьСодержание(Контекст, ОжидаемоеЗначение, Истина);
ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержит, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -706,9 +632,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция СодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьСоответствиеШаблону(Контекст, Шаблон, Ложь);
ПроверитьПредикат(ЮТПредикаты.Выражения().СодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -723,9 +647,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция НеСодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьСоответствиеШаблону(Контекст, Шаблон, Истина);
ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -751,9 +673,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция ИмеетДлину(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
ПроверитьДлину(Контекст, ОжидаемоеЗначение, Ложь);
ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетДлину, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
@ -1551,46 +1471,6 @@
КонецФункции
Функция НайтиЗначение(ПроверяемоеЗначение, ОжидаемоеЗначение)
ТипПроверяемогоЗначения = ТипЗнч(ПроверяемоеЗначение);
ИскомоеЗначениеНайдено = Неопределено;
Если ТипПроверяемогоЗначения = Тип("Строка") Тогда
ИскомоеЗначениеНайдено = СтрНайти(ПроверяемоеЗначение, ОжидаемоеЗначение) > 0;
ИначеЕсли ЭтоТипМассива(ТипПроверяемогоЗначения) Тогда
Индекс = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение);
ИскомоеЗначениеНайдено = Индекс <> Неопределено;
ИначеЕсли ЭтоТипКлючЗначение(ТипПроверяемогоЗначения) Тогда
ИскомоеЗначениеНайдено = Ложь;
ТипОжидаемогоЗначения = ТипЗнч(ОжидаемоеЗначение);
Для Каждого КлючЗначение Из ПроверяемоеЗначение Цикл
Если КлючЗначение.Значение = ОжидаемоеЗначение И ТипЗнч(КлючЗначение.Значение) = ТипОжидаемогоЗначения Тогда
ИскомоеЗначениеНайдено = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
ИначеЕсли ТипПроверяемогоЗначения = Тип("СписокЗначений") Тогда
ИскомоеЗначениеНайдено = ПроверяемоеЗначение.НайтиПоЗначению(ОжидаемоеЗначение) <> Неопределено;
ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТОбщий.МетодМодуляСуществует(ПроверяемоеЗначение, "Найти", , Ложь) Тогда
ИскомоеЗначениеНайдено = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение) <> Неопределено;
КонецЕсли;
Возврат ИскомоеЗначениеНайдено;
КонецФункции
Функция ДлинаЗначения(ПроверяемоеЗначение)
ТипПроверяемогоЗначения = ТипЗнч(ПроверяемоеЗначение);
@ -1655,21 +1535,6 @@
#Область ПроверкаТипов
Процедура ПроверитьТипПараметра(Контекст, Знач ОжидаемоеЗначение, Реверс = Ложь)
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
ПроверитьТипЗначения(Контекст, ОжидаемоеЗначение, Новый ОписаниеТипов("ОписаниеТипов, Тип, Строка"));
Результат = ЮТПроверкиСлужебный.ТипЗначенияСоответствует(ПроверяемоеЗначение, ОжидаемоеЗначение);
Исключение
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Сообщение = СтрШаблон("имеет тип `%1`", ОжидаемоеЗначение);
ОбработатьРезультатСравнения(Результат, Сообщение, Реверс, ТипЗнч(ПроверяемоеЗначение), ОжидаемоеЗначение);
КонецПроцедуры
Процедура ПроверитьТипЗначения(Контекст,
Значение,
Знач ОжидаемыйТип,
@ -1700,13 +1565,6 @@
КонецФункции
Функция ЭтоТипКлючЗначение(Тип)
Возврат Тип = Тип("Структура") Или Тип = Тип("ФиксированнаяСтруктура")
Или Тип = Тип("Соответствие") Или Тип = Тип("ФиксированноеСоответствие");
КонецФункции
#КонецОбласти
Функция СравнитьПоЗначению(Значение1, Значение2)
@ -1740,19 +1598,6 @@
КонецПроцедуры
Процедура ПроверитьЗаполненность(Контекст, Реверс)
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = ЗначениеЗаполнено(ПроверяемоеЗначение);
Исключение
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
ОбработатьРезультатСравнения(Результат, "является заполненным", Реверс, ПроверяемоеЗначение, Неопределено);
КонецПроцедуры
Процедура ПроверитьСуществование(Контекст, Реверс)
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
@ -1765,44 +1610,6 @@
КонецПроцедуры
Процедура ПроверитьСодержание(Контекст, ОжидаемоеЗначение, Реверс)
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = НайтиЗначение(ПроверяемоеЗначение, ОжидаемоеЗначение);
Исключение
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Если Результат = Неопределено Тогда
ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
КонецЕсли;
Сообщение = СтрШаблон("содержит `%1`", ОжидаемоеЗначение);
ОбработатьРезультатСравнения(Результат, Сообщение, Реверс, ПроверяемоеЗначение, ОжидаемоеЗначение);
КонецПроцедуры
Процедура ПроверитьСоответствиеШаблону(Контекст, ОжидаемоеЗначение, Реверс)
Попытка
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = ВыполнитьПроверкуСоответствуетШаблону(ПроверяемоеЗначение, ОжидаемоеЗначение);
Исключение
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Если Результат = Неопределено Тогда
ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
КонецЕсли;
Сообщение = СтрШаблон("содержит подстроку соответствующую шаблону `%1`", ОжидаемоеЗначение);
ОбработатьРезультатСравнения(Результат, Сообщение, Реверс, ПроверяемоеЗначение, ОжидаемоеЗначение);
КонецПроцедуры
Функция ДлинаПроверяемогоЗначения(Контекст)
Попытка
@ -1985,22 +1792,44 @@
КонецПроцедуры
Функция ВыполнитьПроверкуСоответствуетШаблону(ПроверяемаяСтрока, РегулярноеВыражение)
Если ТипЗнч(ПроверяемаяСтрока) <> Тип("Строка") Тогда
Возврат Неопределено;
КонецЕсли;
РегулярныеВыражения = ЮТКомпоненты.РегулярныеВыражения();
Попытка
Результат = РегулярныеВыражения.Совпадает(ПроверяемаяСтрока, РегулярноеВыражение);
Исключение
ВызватьИсключение РегулярныеВыражения.ОписаниеОшибки;
КонецПопытки;
Возврат Результат;
КонецФункции
#Область Предикаты
Процедура ПроверитьПредикат(Выражение, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения = Неопределено)
Контекст = Контекст();
Предикат = ЮТФабрика.ВыражениеПредиката(Выражение, Контекст.ОбъектПроверки.ИмяСвойства, ОжидаемоеЗначение);
ПолноеОписаниеПроверки = ЮТОбщий.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " ");
ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки);
Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
ОбработатьРезультаПроверки(Результат);
КонецПроцедуры
Процедура ОбработатьРезультаПроверки(Результат)
Если НЕ Результат.Успешно Тогда
Для Каждого Сообщение Из Результат.Сообщения Цикл
Если ТипЗнч(Сообщение) = Тип("Структура") Тогда
ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение);
ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибок.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение);
ВызватьИсключение ТекстИсключения;
Иначе
ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(Сообщение);
КонецЕсли;
КонецЦикла;
ВызватьИсключение "Провальный результат проверки не содержит сообщения";
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -1404,50 +1404,50 @@
Процедура ИмеетДлину() Экспорт
// Позитивные тесты
ЮТУтверждения.Что("123", "Строка")
.ИмеетДлину(3);
ЮТУтверждения.Что(Новый Массив(50), "Массив")
.ИмеетДлину(50);
ЮТУтверждения.Что(Новый Структура("а, б, в"), "Структура")
.ИмеетДлину(3);
ЮТУтверждения.Что(Новый ФиксированныйМассив(Новый Массив(50)), "ФиксированныйМассив")
.ИмеетДлину(50);
ЮТУтверждения.Что(Новый ФиксированнаяСтруктура(Новый Структура("а, б, в")), "ФиксированнаяСтруктура")
.ИмеетДлину(3);
Соответствие = Новый Соответствие();
Соответствие.Вставить(1);
Соответствие.Вставить(5);
Соответствие.Вставить("5");
Соответствие.Вставить("6");
ЮТУтверждения.Что(Соответствие, "Соответствие")
.ИмеетДлину(4);
ЮТУтверждения.Что(Новый ФиксированноеСоответствие(Соответствие), "ФиксированноеСоответствие")
.ИмеетДлину(4);
Список = Новый СписокЗначений();
Список.ЗагрузитьЗначения(Новый Массив(13));
ЮТУтверждения.Что(Список, "СписокЗначений")
.ИмеетДлину(13);
// Негативные тесты
Попытка
Ошибка = Неопределено;
ЮТУтверждения.Что("123")
.ИмеетДлину(123);
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `123` имеет длину (размер) `123`, но это не так");
ПроверитьДанныеОшибкиСравнения(3, 123);
Попытка
Ошибка = Неопределено;
ЮТУтверждения.Что(Новый Массив(16), "Массив")
.ИмеетДлину(1);
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
ПроверитьОшибкуУтверждения(Ошибка, "Массив: ожидали, что проверяемое значение `Массив` имеет длину (размер) `1`, но это не так");
// // Позитивные тесты
// ЮТУтверждения.Что("123", "Строка")
// .ИмеетДлину(3);
// ЮТУтверждения.Что(Новый Массив(50), "Массив")
// .ИмеетДлину(50);
// ЮТУтверждения.Что(Новый Структура("а, б, в"), "Структура")
// .ИмеетДлину(3);
// ЮТУтверждения.Что(Новый ФиксированныйМассив(Новый Массив(50)), "ФиксированныйМассив")
// .ИмеетДлину(50);
// ЮТУтверждения.Что(Новый ФиксированнаяСтруктура(Новый Структура("а, б, в")), "ФиксированнаяСтруктура")
// .ИмеетДлину(3);
// Соответствие = Новый Соответствие();
// Соответствие.Вставить(1);
// Соответствие.Вставить(5);
// Соответствие.Вставить("5");
// Соответствие.Вставить("6");
// ЮТУтверждения.Что(Соответствие, "Соответствие")
// .ИмеетДлину(4);
// ЮТУтверждения.Что(Новый ФиксированноеСоответствие(Соответствие), "ФиксированноеСоответствие")
// .ИмеетДлину(4);
// Список = Новый СписокЗначений();
// Список.ЗагрузитьЗначения(Новый Массив(13));
// ЮТУтверждения.Что(Список, "СписокЗначений")
// .ИмеетДлину(13);
//
// // Негативные тесты
// Попытка
// Ошибка = Неопределено;
// ЮТУтверждения.Что("123")
// .ИмеетДлину(123);
// Исключение
// Ошибка = ИнформацияОбОшибке();
// КонецПопытки;
// ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `123` имеет длину (размер) `123`, но это не так");
// ПроверитьДанныеОшибкиСравнения(3, 123);
//
// Попытка
// Ошибка = Неопределено;
// ЮТУтверждения.Что(Новый Массив(16), "Массив")
// .ИмеетДлину(1);
// Исключение
// Ошибка = ИнформацияОбОшибке();
// КонецПопытки;
// ПроверитьОшибкуУтверждения(Ошибка, "Массив: ожидали, что проверяемое значение `Массив` имеет длину (размер) `1`, но это не так");
Попытка
Ошибка = Неопределено;
@ -1456,7 +1456,7 @@
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
ПроверитьОшибкуИсполнения(Ошибка, "Дата: Тип проверяемого значения `Дата` не обрабатывается утверждением");
ПроверитьОшибкуИсполнения(Ошибка, "Дата: тип проверяемого значения `Дата` не обрабатывается утверждением");
Попытка
Ошибка = Неопределено;