Skip to content

Commit e594a9b

Browse files
authored
Добавлен метод проверки нахождения в строке только цифр и проверку типа, а также дату с 2 секундной флуктуацией, ну и проверка на ожидаемую ошибку (#9)
* Добавлен метод проверки нахождения в строке только цифр проверка обнаружена в testrunner.os https://github.com/EvilBeaver/OneScript/blob/develop/tests/testrunner.os#L903 * Как можно было тип то забыть ;-) очередной порт из Testrunner.os * Проверка даты с флуктуацией 2 секунды * Код вызывающий исключение - и его проверка
1 parent b7f1c6a commit e594a9b

File tree

1 file changed

+65
-2
lines changed

1 file changed

+65
-2
lines changed

src/xunit-asserts.os

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@
2424
КонецЕсли;
2525
КонецПроцедуры
2626

27+
Процедура ПроверитьРавенствоДатСТочностью2Секунды(_Дата, _Дата2, ДопСообщениеОшибки = "") Экспорт
28+
Если _Дата < _Дата2-2 или _Дата > _Дата2+2 Тогда
29+
СообщениеОшибки = "Переданная дата ("+Формат(_Дата, "ДФ='dd.MM.yyyy HH:mm:ss'")+") не равна дате ("+Формат(_Дата2, "ДФ='dd.MM.yyyy HH:mm:ss'")+") с точностью до 2-х секунд, а хотели, чтобы они равнялись." + ФорматДСО(ДопСообщениеОшибки);
30+
ВызватьИсключение(СообщениеОшибки);
31+
КонецЕсли;
32+
КонецПроцедуры
33+
2734
Процедура ПроверитьРавенство(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = "") Экспорт
2835
Если ПервоеЗначение <> ВтороеЗначение Тогда
2936
СообщениеОшибки = "Сравниваемые значения ("+ПервоеЗначение+"; "+ВтороеЗначение+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки);
@@ -79,8 +86,8 @@
7986
КонецПроцедуры
8087

8188
Процедура ПроверитьНеЗаполненность(ПроверяемоеЗначение, ДопСообщениеОшибки = "") Экспорт
82-
СообщениеОшибки = "Значение ("+ПроверяемоеЗначение+") заполнено, а ожидалась незаполненность" + ФорматДСО(ДопСообщениеОшибки);
83-
Попытка
89+
СообщениеОшибки = "Значение ("+ПроверяемоеЗначение+") заполнено, а ожидалась незаполненность" + ФорматДСО(ДопСообщениеОшибки);
90+
Попытка
8491
фЗаполнено = ЗначениеЗаполнено(ПроверяемоеЗначение);
8592
Исключение
8693
ВызватьИсключение СообщениеОшибки;
@@ -90,13 +97,69 @@
9097
КонецЕсли;
9198
КонецПроцедуры
9299

100+
Процедура ПроверитьТип(Значение, ТипИлиИмяТипа, ДопСообщениеОшибки = "") Экспорт
101+
102+
Если ТипЗнч(ТипИлиИмяТипа) = Тип("Строка") Тогда
103+
ОжидаемыйТип = Тип(ТипИлиИмяТипа);
104+
ИначеЕсли ТипЗнч(ТипИлиИмяТипа) = Тип("Тип") Тогда
105+
ОжидаемыйТип = ТипИлиИмяТипа;
106+
Иначе
107+
ТекстИсключения = СтрШаблон(
108+
"ПроверитьТип: Тип значения параметра ТипИлиИмяТипа должен быть <Тип> или <Строка>, а получили <%1>.%2",
109+
ТипЗнч(ТипИлиИмяТипа),
110+
ФорматДСО(ДопСообщениеОшибки));
111+
ВызватьИсключение(ТекстИсключения);
112+
КонецЕсли;
113+
Если ТипЗнч(Значение) <> ОжидаемыйТип Тогда
114+
ОшибкаПроверки = СтрШаблон(
115+
"Типом значения <%1> является <%2>, а ожидался тип <%3>.%4",
116+
Значение, ТипЗнч(Значение), ТипИлиИмяТипа, ФорматДСО(ДопСообщениеОшибки));
117+
ВызватьИсключение(ОшибкаПроверки);
118+
КонецЕсли;
119+
КонецПроцедуры
120+
121+
Процедура ПроверитьЧтоВСтрокеСодержатсяТолькоЦифры(Знач ИсходнаяСтрока, ДопСообщениеОшибки = "") Экспорт
122+
//порт из testrunner в составе oscript-engine
123+
СообщениеОшибки = "Строка ("+ИсходнаяСтрока+") содержит не только цифры, а ожидалась обратное" + ФорматДСО(ДопСообщениеОшибки);
124+
125+
ТолькоЦифры = Ложь;
126+
ДлинаСтроки = СтрДлина(ИсходнаяСтрока);
127+
Для Сч = 1 По ДлинаСтроки Цикл
128+
ТекущийСимвол = КодСимвола(Сред(ИсходнаяСтрока, Сч, 1));
129+
Если 48 <= ТекущийСимвол И ТекущийСимвол <= 57 Тогда
130+
ТолькоЦифры = Истина;
131+
Иначе
132+
ТолькоЦифры = Ложь;
133+
Прервать;
134+
КонецЕсли;
135+
КонецЦикла;
136+
Если НЕ ТолькоЦифры Тогда
137+
ВызватьИсключение СообщениеОшибки;
138+
КонецЕсли;
139+
КонецПроцедуры
140+
93141
Процедура ПроверитьВхождение(строка, подстрокаПоиска, ДопСообщениеОшибки = "") Экспорт
94142
Если Найти(строка, подстрокаПоиска) = 0 Тогда
95143
СообщениеОшибки = "Искали в <"+строка+"> подстроку <"+подстрокаПоиска+">, но не нашли." + ФорматДСО(ДопСообщениеОшибки);
96144
ВызватьИсключение(СообщениеОшибки);
97145
КонецЕсли;
98146
КонецПроцедуры
99147

148+
Процедура ПроверитьКодСОшибкой( Код, Ошибка, ДопСообщениеОшибки = "" ) Экспорт
149+
Попытка
150+
Сценарий = ЗагрузитьСценарийИзСтроки(Код);
151+
СообщениеОшибки = "Ожидали ошибку '"+Ошибка+"', но ее не было";
152+
Исключение
153+
ОписаниеОшибки = ИнформацияОбОшибке().Описание;
154+
Если Найти(ОписаниеОшибки, Ошибка ) = 0 Тогда
155+
СообщениеОшибки = "Ожидали ошибку '"+Ошибка+"', а была ошибка '"+ОписаниеОшибки+"'";
156+
Иначе
157+
Возврат;
158+
КонецЕсли;
159+
КонецПопытки;
160+
ВызватьИсключение(СообщениеОшибки + ФорматДСО(ДопСообщениеОшибки));
161+
КонецПроцедуры
162+
100163
// Проверяет существование метода у объекта
101164
//
102165
// Выбрасывает исключение, если метод отсутствует

0 commit comments

Comments
 (0)