Skip to content

Commit 6b61615

Browse files
committed
Для тех кому не нравится "Не_()", добавлен метод "ЭтоНе()" и для других методов с префиксом "Это" сделаны аналоги с префиксом "Есть":
- ЕстьИстина() - ЕстьЛожь() - ЕстьНеопределено() - ЕстьNull() Добавлена возможность (не)ожидать выбрасываемые исключения, для этого добавлены методы: - Метод(Знач ИмяМетодаПараметр, Знач ПараметрыМетодаПараметр = Неопределено) - ВыбрасываетИсключение(Знач ФрагментИсключения = "") Например: Контекст = Новый Структура; Ожидаем.Что(Контекст).Метод("Вставить").ВыбрасываетИсключение("Недостаточно фактических параметров"); Исправлены ошибки: - В работе проверок ЭтоИстина и ЭтоЛожь, было неожиданное поведение, если в качестве проверяемого значения было значение с типом отличным от Булево; - При формировании сообщений об ошибке не выводилось отрицание утверждения, хотя оно явно использовалось.
1 parent d89be7f commit 6b61615

File tree

1 file changed

+80
-19
lines changed

1 file changed

+80
-19
lines changed

src/bdd-asserts.os

Lines changed: 80 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,44 @@
1720
Возврат ЭтотОбъект;
1821
КонецФункции
1922

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

2640
Возврат ЭтотОбъект;
2741
КонецФункции
2842

43+
Функция ЕстьИстина() Экспорт
44+
Возврат ЭтоИстина();
45+
КонецФункции
46+
2947
Функция ЭтоЛожь() Экспорт
30-
Если Не ЛогическоеВыражениеВерно(Не ПроверяемоеЗначение) Тогда
48+
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Ложь) Тогда
3149
СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ЛОЖЬЮ.");
3250
ВызватьОшибкуПроверки(СообщениеОшибки);
3351
КонецЕсли;
3452

3553
Возврат ЭтотОбъект;
3654
КонецФункции
3755

38-
Функция Равно(ОжидаемоеЗначение) Экспорт
56+
Функция ЕстьЛожь() Экспорт
57+
Возврат ЭтоЛожь();
58+
КонецФункции
59+
60+
Функция Равно(Знач ОжидаемоеЗначение) Экспорт
3961
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = ОжидаемоеЗначение) Тогда
4062
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "РАВНО (" + ОжидаемоеЗначение + ").");
4163
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -44,7 +66,7 @@
4466
Возврат ЭтотОбъект;
4567
КонецФункции
4668

47-
Функция Больше(МеньшееЗначение) Экспорт
69+
Функция Больше(Знач МеньшееЗначение) Экспорт
4870
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение > МеньшееЗначение) Тогда
4971
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ (" + МеньшееЗначение + ").");
5072
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -53,7 +75,7 @@
5375
Возврат ЭтотОбъект;
5476
КонецФункции
5577

56-
Функция БольшеИлиРавно(МеньшееИлиРавноеЗначение) Экспорт
78+
Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт
5779
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение >= МеньшееИлиРавноеЗначение) Тогда
5880
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ ИЛИ РАВНО (" + МеньшееИлиРавноеЗначение + ").");
5981
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -62,11 +84,11 @@
6284
Возврат ЭтотОбъект;
6385
КонецФункции
6486

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

69-
Функция МеньшеИлиРавно(БольшееИлиРавноеЗначение) Экспорт
91+
Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт
7092
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение <= БольшееИлиРавноеЗначение) Тогда
7193
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ ИЛИ РАВНО (" + БольшееИлиРавноеЗначение + ").");
7294
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -75,11 +97,11 @@
7597
Возврат ЭтотОбъект;
7698
КонецФункции
7799

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

82-
Функция Меньше(БольшееЗначение) Экспорт
104+
Функция Меньше(Знач БольшееЗначение) Экспорт
83105
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение < БольшееЗначение) Тогда
84106
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ (" + БольшееЗначение + ").");
85107
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -115,6 +137,10 @@
115137
Возврат ЭтотОбъект;
116138
КонецФункции
117139

140+
Функция ЕстьНеопределено() Экспорт
141+
Возврат ЭтоНеопределено();
142+
КонецФункции
143+
118144
Функция ЭтоNull() Экспорт
119145
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение = Null) Тогда
120146
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является NULL.");
@@ -124,7 +150,11 @@
124150
Возврат ЭтотОбъект;
125151
КонецФункции
126152

127-
Функция ИмеетТип(ТипИлиИмяТипа) Экспорт
153+
Функция ЕстьNull() Экспорт
154+
Возврат ЭтоNull();
155+
КонецФункции
156+
157+
Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт
128158
ОжидаемыйТип = ?(ТипЗнч(ТипИлиИмяТипа) = Тип("Строка"), Тип(ТипИлиИмяТипа), ТипИлиИмяТипа);
129159
ТипПроверяемогоЗначения = ТипЗнч(ПроверяемоеЗначение);
130160
Если Не ЛогическоеВыражениеВерно(ТипПроверяемогоЗначения = ОжидаемыйТип) Тогда
@@ -135,7 +165,7 @@
135165
Возврат ЭтотОбъект;
136166
КонецФункции
137167

138-
Функция Между(НачальноеЗначение, КонечноеЗначение) Экспорт
168+
Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт
139169
Если Не ЛогическоеВыражениеВерно(ПроверяемоеЗначение >= НачальноеЗначение И ПроверяемоеЗначение <= КонечноеЗначение) Тогда
140170
СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕЖДУ (" + НачальноеЗначение + ") и (" + КонечноеЗначение + ").");
141171
ВызватьОшибкуПроверки(СообщениеОшибки);
@@ -144,7 +174,7 @@
144174
Возврат ЭтотОбъект;
145175
КонецФункции
146176

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

150180
ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение);
@@ -177,7 +207,7 @@
177207
Возврат ЭтотОбъект;
178208
КонецФункции
179209

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

183213
ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение);
@@ -205,29 +235,60 @@
205235
Возврат ЭтотОбъект;
206236
КонецФункции
207237

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

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

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

222-
Функция ЛогическоеВыражениеВерно(ЛогическоеВыражение)
282+
Функция ЛогическоеВыражениеВерно(Знач ЛогическоеВыражение)
223283
Результат = ФлагОтрицания <> ЛогическоеВыражение;
284+
ФлагОтрицанияДляСообщения = ФлагОтрицания;
224285
ФлагОтрицания = Ложь;
225286

226287
Возврат Результат;
227288
КонецФункции
228289

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

0 commit comments

Comments
 (0)