mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-01-08 13:06:32 +02:00
Добавлена поддержка форматированных строк в утверждениях Исправлена проверка наличия метода у объекта/модуля
This commit is contained in:
parent
6bae58d7e1
commit
55914faa23
@ -583,7 +583,7 @@
|
||||
#КонецОбласти
|
||||
|
||||
// МетодМодуляСуществует
|
||||
// Проверяет существование публичного (экспортного) метода у объекта
|
||||
// Проверяет существование публичного (экспортного) метода у модуля
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяМодуля - Строка - Имя модуля, метод которого нужно поискать
|
||||
@ -595,16 +595,42 @@
|
||||
// Булево - Метод найден
|
||||
Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров = 0, Кешировать = Истина) Экспорт
|
||||
|
||||
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМодуля, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМодуля");
|
||||
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода");
|
||||
|
||||
Если Кешировать Тогда
|
||||
Возврат ЮТПовторногоИспользования.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров);
|
||||
КонецЕсли;
|
||||
|
||||
Алгоритм = СтрШаблон("%1.%2(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)", ИмяМодуля, ИмяМетода);
|
||||
ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяМетода);;
|
||||
Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
|
||||
|
||||
Ошибка = ВыполнитьМетод(Алгоритм);
|
||||
МетодСуществует = СтрНайти(НРег(Ошибка.Описание), "(" + НРег(ИмяМетода) + ")") = 0;
|
||||
|
||||
Возврат МетодСуществует;
|
||||
ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода);
|
||||
Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет существование публичного (экспортного) метода у объекта
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - Произвольный - Объект, метод которого нужно поискать
|
||||
// ИмяМетода - Строка - Имя метода, который ищем
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Метод найден
|
||||
Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт
|
||||
|
||||
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода");
|
||||
|
||||
ПолноеИмяМетода = СтрШаблон("Объект.%1", ИмяМетода);;
|
||||
Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
|
||||
|
||||
Ошибка = ВыполнитьМетод(Алгоритм);
|
||||
|
||||
ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода);
|
||||
Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -408,7 +408,7 @@
|
||||
|
||||
ТипПроверяемогоЗначения = ТипЗнч(ПроверяемоеЗначение);
|
||||
|
||||
Если ТипПроверяемогоЗначения = Тип("Строка") Тогда
|
||||
Если ТипПроверяемогоЗначения = Тип("Строка") ИЛИ ТипПроверяемогоЗначения = Тип("ФорматированнаяСтрока") Тогда
|
||||
|
||||
ФактическаяДлина = СтрДлина(ПроверяемоеЗначение);
|
||||
|
||||
@ -428,14 +428,10 @@
|
||||
|
||||
Функция СоответствуетШаблону(ПроверяемаяСтрока, РегулярноеВыражение)
|
||||
|
||||
Если ТипЗнч(ПроверяемаяСтрока) <> Тип("Строка") Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
РегулярныеВыражения = ЮТКомпоненты.РегулярныеВыражения();
|
||||
|
||||
Попытка
|
||||
Результат = РегулярныеВыражения.Совпадает(ПроверяемаяСтрока, РегулярноеВыражение);
|
||||
Результат = РегулярныеВыражения.Совпадает(Строка(ПроверяемаяСтрока), РегулярноеВыражение);
|
||||
Исключение
|
||||
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки("Ошибка проверки строки по шаблону " + РегулярноеВыражение);
|
||||
ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(РегулярныеВыражения.ОписаниеОшибки);
|
||||
@ -450,7 +446,7 @@
|
||||
|
||||
ТипПроверяемогоЗначения = ТипЗнч(ПроверяемоеЗначение);
|
||||
|
||||
Если ТипПроверяемогоЗначения = Тип("Строка") Тогда
|
||||
Если ТипПроверяемогоЗначения = Тип("Строка") Или ТипПроверяемогоЗначения = Тип("ФорматированнаяСтрока") Тогда
|
||||
|
||||
ИскомоеЗначениеНайдено = СтрНайти(ПроверяемоеЗначение, ОжидаемоеЗначение) > 0;
|
||||
|
||||
@ -475,7 +471,7 @@
|
||||
|
||||
ИскомоеЗначениеНайдено = ПроверяемоеЗначение.НайтиПоЗначению(ОжидаемоеЗначение) <> Неопределено;
|
||||
|
||||
ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТОбщий.МетодМодуляСуществует(ПроверяемоеЗначение, "Найти", , Ложь) Тогда
|
||||
ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТОбщий.МетодОбъектаСуществует(ПроверяемоеЗначение, "Найти") Тогда
|
||||
|
||||
ИскомоеЗначениеНайдено = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение) <> Неопределено;
|
||||
|
||||
@ -737,7 +733,10 @@
|
||||
|
||||
Функция ПроверитьСоответствуетШаблону(РезультатПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки)
|
||||
|
||||
Если НЕ ПроверитьТипЗначения(РезультатПроверки, ОжидаемоеЗначение, "Строка") Тогда
|
||||
ТипыПараметровСоответствуют = ПроверитьТипЗначения(РезультатПроверки, ОжидаемоеЗначение, "Строка")
|
||||
И ПроверитьТипЗначения(РезультатПроверки, ПроверяемоеЗначение, "Строка, ФорматированнаяСтрока", "проверяемого значения");
|
||||
|
||||
Если Не ТипыПараметровСоответствуют Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
|
@ -875,7 +875,7 @@
|
||||
Контекст = Контекст();
|
||||
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
|
||||
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
|
||||
ПроверитьТипЗначения(Контекст, ПроверяемоеЗначение, "Строка", "проверяемого значения");
|
||||
ПроверитьТипЗначения(Контекст, ПроверяемоеЗначение, "Строка, ФорматированнаяСтрока", "проверяемого значения");
|
||||
ПроверитьТипЗначения(Контекст, СтрокаПоиска, "Строка", "ожидаемого значения");
|
||||
ПроверитьЗаполненностьЗначения(Контекст, СтрокаПоиска, "ожидаемое значение");
|
||||
|
||||
@ -905,7 +905,7 @@
|
||||
Контекст = Контекст();
|
||||
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
|
||||
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
|
||||
ПроверитьТипЗначения(Контекст, ПроверяемоеЗначение, "Строка", "проверяемого значения");
|
||||
ПроверитьТипЗначения(Контекст, ПроверяемоеЗначение, "Строка, ФорматированнаяСтрока", "проверяемого значения");
|
||||
ПроверитьТипЗначения(Контекст, СтрокаПоиска, "Строка", "ожидаемого значения");
|
||||
ПроверитьЗаполненностьЗначения(Контекст, СтрокаПоиска, "ожидаемое значение");
|
||||
|
||||
|
@ -76,6 +76,7 @@
|
||||
.ДобавитьТест("ЛюбойЭлементСоответствуетПредикату")
|
||||
.ДобавитьТест("СодержитПредикат")
|
||||
.ДобавитьТест("НеСодержитПредикат")
|
||||
.ДобавитьТест("ФорматированныеСтроки")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -2342,6 +2343,23 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ФорматированныеСтроки() Экспорт
|
||||
|
||||
Строка = Новый ФорматированнаяСтрока("Тестовая строка");
|
||||
|
||||
ЮТест.ОжидаетЧто(Строка)
|
||||
.ИмеетТип("ФорматированнаяСтрока")
|
||||
.ИмеетДлину(15)
|
||||
.НачинаетсяС("Те")
|
||||
.ЗаканчиваетсяНа("ка")
|
||||
.Содержит("ова")
|
||||
.НеСодержит("число")
|
||||
.СодержитСтрокуПоШаблону("[\w\W]+")
|
||||
.НеСодержитСтрокуПоШаблону("\d+")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
Loading…
Reference in New Issue
Block a user