Skip to content

Commit 26b1783

Browse files
committed
Merge branch 'develop' of https://github.com/wizi4d/oscript-library into develop
2 parents cfc0011 + 6b61615 commit 26b1783

File tree

2 files changed

+90
-19
lines changed

2 files changed

+90
-19
lines changed

src/bdd-asserts.os

Lines changed: 77 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
Перем ПроверяемоеЗначение;
2+
Перем ИмяМетода;
3+
Перем ПараметрыМетода;
24
Перем ДопСообщениеОшибки;
35
Перем ФлагОтрицания;
6+
Перем ФлагОтрицанияДляСообщения;
47
Перем СтатусыРезультатаТестирования;
58

6-
Функция Что(ПроверяемоеЗначениеПараметр, Сообщение = "") Экспорт
9+
Функция Что(Знач ПроверяемоеЗначениеПараметр, Знач Сообщение = "") Экспорт
710
ПроверяемоеЗначение = ПроверяемоеЗначениеПараметр;
811
ДопСообщениеОшибки = Сообщение;
912
ФлагОтрицания = Ложь;
@@ -17,25 +20,48 @@
1720
Возврат ЭтотОбъект;
1821
КонецФункции
1922

23+
Функция ЭтоНе() Экспорт
24+
Возврат Не_();
25+
КонецФункции
26+
27+
Функция Метод(Знач ИмяМетодаПараметр, Знач ПараметрыМетодаПараметр = Неопределено) Экспорт
28+
ИмяМетода = ИмяМетодаПараметр;
29+
Если ПараметрыМетодаПараметр = Неопределено Тогда
30+
ПараметрыМетода = Новый Массив;
31+
Иначе
32+
ПараметрыМетода = ПараметрыМетодаПараметр;
33+
КонецЕсли;
34+
35+
Возврат ЭтотОбъект;
36+
КонецФункции
37+
2038
Функция ЭтоИстина() Экспорт
21-
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение) Тогда
39+
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Истина) Тогда
2240
СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ИСТИНОЙ.");
2341
ВызватьОшибкуПроверки(СообщениеОшибки);
2442
КонецЕсли;
2543

2644
Возврат ЭтотОбъект;
2745
КонецФункции
2846

47+
Функция ЕстьИстина() Экспорт
48+
Возврат ЭтоИстина();
49+
КонецФункции
50+
2951
Функция ЭтоЛожь() Экспорт
30-
Если Не ЛогическоеВыражениеВерно(Не ПроверяемоеЗначение) Тогда
52+
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Ложь) Тогда
3153
СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ЛОЖЬЮ.");
3254
ВызватьОшибкуПроверки(СообщениеОшибки);
3355
КонецЕсли;
3456

3557
Возврат ЭтотОбъект;
3658
КонецФункции
3759

38-
Функция Равно(ОжидаемоеЗначение) Экспорт
60+
Функция ЕстьЛожь() Экспорт
61+
Возврат ЭтоЛожь();
62+
КонецФункции
63+
64+
Функция Равно(Знач ОжидаемоеЗначение) Экспорт
3965
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = ОжидаемоеЗначение) Тогда
4066
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "РАВНО (" + ОжидаемоеЗначение + ").");
4167
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -44,7 +70,7 @@
4470
Возврат ЭтотОбъект;
4571
КонецФункции
4672

47-
Функция Больше(МеньшееЗначение) Экспорт
73+
Функция Больше(Знач МеньшееЗначение) Экспорт
4874
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение > МеньшееЗначение) Тогда
4975
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ (" + МеньшееЗначение + ").");
5076
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -53,7 +79,7 @@
5379
Возврат ЭтотОбъект;
5480
КонецФункции
5581

56-
Функция БольшеИлиРавно(МеньшееИлиРавноеЗначение) Экспорт
82+
Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт
5783
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение >= МеньшееИлиРавноеЗначение) Тогда
5884
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ ИЛИ РАВНО (" + МеньшееИлиРавноеЗначение + ").");
5985
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -62,11 +88,11 @@
6288
Возврат ЭтотОбъект;
6389
КонецФункции
6490

65-
Функция Минимум(МинимальноеЗначение) Экспорт
91+
Функция Минимум(Знач МинимальноеЗначение) Экспорт
6692
Возврат БольшеИлиРавно(МинимальноеЗначение);
6793
КонецФункции
6894

69-
Функция МеньшеИлиРавно(БольшееИлиРавноеЗначение) Экспорт
95+
Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт
7096
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение <= БольшееИлиРавноеЗначение) Тогда
7197
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ ИЛИ РАВНО (" + БольшееИлиРавноеЗначение + ").");
7298
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -75,11 +101,11 @@
75101
Возврат ЭтотОбъект;
76102
КонецФункции
77103

78-
Функция Максимум(МаксимальноеЗначение) Экспорт
104+
Функция Максимум(Знач МаксимальноеЗначение) Экспорт
79105
Возврат МеньшеИлиРавно(МаксимальноеЗначение);
80106
КонецФункции
81107

82-
Функция Меньше(БольшееЗначение) Экспорт
108+
Функция Меньше(Знач БольшееЗначение) Экспорт
83109
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение < БольшееЗначение) Тогда
84110
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ (" + БольшееЗначение + ").");
85111
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -115,6 +141,10 @@
115141
Возврат ЭтотОбъект;
116142
КонецФункции
117143

144+
Функция ЕстьНеопределено() Экспорт
145+
Возврат ЭтоНеопределено();
146+
КонецФункции
147+
118148
Функция ЭтоNull() Экспорт
119149
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Null) Тогда
120150
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является NULL.");
@@ -124,7 +154,11 @@
124154
Возврат ЭтотОбъект;
125155
КонецФункции
126156

127-
Функция ИмеетТип(ТипИлиИмяТипа) Экспорт
157+
Функция ЕстьNull() Экспорт
158+
Возврат ЭтоNull();
159+
КонецФункции
160+
161+
Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт
128162
ОжидаемыйТип = ?(ТипЗнч(ТипИлиИмяТипа) = Тип("Строка"), Тип(ТипИлиИмяТипа), ТипИлиИмяТипа);
129163
ТипПроверяемогоЗначения = ТипЗнч(ПроверяемоеЗначение);
130164
Если Не ЛогическоеВыражениеВерно(ТипПроверяемогоЗначения = ОжидаемыйТип) Тогда
@@ -135,7 +169,7 @@
135169
Возврат ЭтотОбъект;
136170
КонецФункции
137171

138-
Функция Между(НачальноеЗначение, КонечноеЗначение) Экспорт
172+
Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт
139173
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение >= НачальноеЗначение И ПроверяемоеЗначение <= КонечноеЗначение) Тогда
140174
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕЖДУ (" + НачальноеЗначение + ") и (" + КонечноеЗначение + ").");
141175
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -144,7 +178,7 @@
144178
Возврат ЭтотОбъект;
145179
КонецФункции
146180

147-
Функция Содержит(ИскомоеЗначение) Экспорт
181+
Функция Содержит(Знач ИскомоеЗначение) Экспорт
148182
Перем ИскомоеЗначениеНайдено;
149183

150184
ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение);
@@ -177,7 +211,7 @@
177211
Возврат ЭтотОбъект;
178212
КонецФункции
179213

180-
Функция ИмеетДлину(ОжидаемаяДлина) Экспорт
214+
Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт
181215
Перем ФактическаяДлина;
182216

183217
ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение);
@@ -205,29 +239,53 @@
205239
Возврат ЭтотОбъект;
206240
КонецФункции
207241

242+
Функция ВыбрасываетИсключение(Знач ФрагментИсключения = "") Экспорт
243+
Контекст = ПроверяемоеЗначение;
244+
ИсключениеВозникло = Ложь;
245+
246+
Попытка
247+
Рефлектор = Новый Рефлектор;
248+
Рефлектор.ВызватьМетод(Контекст, ИмяМетода, ПараметрыМетода);
249+
Исключение
250+
ИсключениеВозникло = Истина;
251+
ТекстИсключения = ОписаниеОшибки();
252+
КонецПопытки;
253+
254+
Если Не ЛогическоеВыражениеВерно(ИсключениеВозникло И Найти(ТекстИсключения, ФрагментИсключения) > 0) Тогда
255+
СообщениеОшибки = "Ожидали, что " + ИмяМетода
256+
+ ?(ФлагОтрицания, " НЕ ", " ")
257+
+ "ВЫБРОСИТ ИСКЛЮЧЕНИЕ"
258+
+ ?(ЗначениеЗаполнено(ФрагментИсключения), " СОДЕРЖАЩЕЕ ТЕКСТ <" + ФрагментИсключения + ">, а был текст <" + ТекстИсключения + ">.", "");
259+
ВызватьОшибкуПроверки(СообщениеОшибки);
260+
КонецЕсли;
261+
262+
Возврат ЭтотОбъект;
263+
КонецФункции
264+
208265
// { Helpers
209-
Функция ФорматДСО(ДопСообщениеОшибки)
266+
Функция ФорматДСО(Знач ДопСообщениеОшибки)
210267
Если ДопСообщениеОшибки = "" Тогда
211268
Возврат "";
212269
КонецЕсли;
213270

214271
Возврат Символы.ПС + ДопСообщениеОшибки;
215272
КонецФункции
216273

217-
Процедура ВызватьОшибкуПроверки(СообщениеОшибки)
274+
Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки)
218275
Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]";
219276
ВызватьИсключение Префикс + " " + СообщениеОшибки;
220277
КонецПроцедуры
221278

222-
Функция ЛогическоеВыражениеВерно(ЛогическоеВыражение)
279+
Функция ЛогическоеВыражениеВерно(Знач ЛогическоеВыражение)
223280
Результат = ФлагОтрицания <> ЛогическоеВыражение;
281+
ФлагОтрицанияДляСообщения = ФлагОтрицания;
224282
ФлагОтрицания = Ложь;
225283

226284
Возврат Результат;
227285
КонецФункции
228286

229-
Функция СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, Ожидание)
230-
Возврат "Ожидали, что проверяемое значение (" + ПроверяемоеЗначение + ")" + ?(ФлагОтрицания, " НЕ ", " ") + Ожидание + ФорматДСО(ДопСообщениеОшибки);
287+
Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание)
288+
Возврат "Ожидали, что проверяемое значение (" + ПроверяемоеЗначение + ")" + ?(ФлагОтрицанияДляСообщения, " НЕ ", " ") + Ожидание + ФорматДСО(ДопСообщениеОшибки);
231289
КонецФункции
232290
// } Helpers
233291

tests/bdd-assertions-tests.os

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
ВсеТесты.Добавить("ТестДолжен_Проверить_Отрицание_ИмеетДлину");
3535
ВсеТесты.Добавить("ТестДолжен_Проверить_КомпозитныеУтверждения");
3636
ВсеТесты.Добавить("ТестДолжен_Проверить_КомпозитныеУтверждения_ВПеремешкуС_Отрицаниями");
37+
ВсеТесты.Добавить("ТестДолжен_Проверить_ЧтоВыбрасываетсяИсключение");
3738

3839
Возврат ВсеТесты;
3940
КонецФункции
@@ -253,3 +254,15 @@
253254
.ИмеетДлину(12)
254255
.Не_().Содержит("!!!");
255256
КонецПроцедуры
257+
258+
Процедура ТестДолжен_Проверить_ЧтоВыбрасываетсяИсключение() Экспорт
259+
Контекст = Новый Структура;
260+
Ожидаем.Что(Контекст).Метод("Вставить").ВыбрасываетИсключение("Недостаточно фактических параметров");
261+
262+
Массив = Новый Массив;
263+
Массив.Добавить("Ключ");
264+
Массив.Добавить("Значение");
265+
266+
Ожидаем.Что(Контекст).Метод("Вставить", Массив).Не_().ВыбрасываетИсключение("Недостаточно фактических параметров");
267+
268+
КонецПроцедуры

0 commit comments

Comments
 (0)