1
+ // Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
2
+ #Использовать asserts
3
+ #Использовать tempfiles
4
+
5
+ Перем БДД ; //контекст фреймворка 1bdd
6
+
7
+ Перем Лог ;
8
+
9
+ // Метод выдает список шагов, реализованных в данном файле-шагов
10
+ Функция ПолучитьСписокШагов (КонтекстФреймворкаBDD ) Экспорт
11
+ БДД = КонтекстФреймворкаBDD;
12
+
13
+ ВсеШаги = Новый Массив;
14
+
15
+ ВсеШаги.Добавить("ВЛог_ФайлеЗапускаПродуктаЕстьСтрока" );
16
+ ВсеШаги.Добавить("ВЛог_ФайлеЗапускаПродуктаОтсутствуетСтрока" );
17
+ ВсеШаги.Добавить("ВФайлеЕстьСтрока" );
18
+
19
+ Возврат ВсеШаги;
20
+ КонецФункции
21
+
22
+
23
+ // Реализация шагов
24
+
25
+ // TODO дубль метода ВЛог_ФайлеЗапускаПродуктаЕстьСтрока с методом в 1bdd
26
+ // TODO дубль метода ВЛог_ФайлеЗапускаПродуктаОтсутствуетСтрока с методом в 1bdd
27
+ // TODO дубль метода ВФайлеЕстьСтрока с методом в 1bdd
28
+ //
29
+ Функция ИмяЛога () Экспорт
30
+ Возврат "bdd.gitsync.feature" ;
31
+ КонецФункции
32
+
33
+ //в лог-файле запуска продукта есть строка "ЯЗапускаюПадающийШагСПараметром-Первый падающий шаг"
34
+ Процедура ВЛог_ФайлеЗапускаПродуктаЕстьСтрока (Знач ПроверяемаяСтрока ) Экспорт
35
+ ТекстЛогФайла = БДД.ПолучитьИзКонтекста("ТекстЛогФайлаПродукта" );
36
+ Если СтрЧислоСтрок (ПроверяемаяСтрока) = 1 Тогда
37
+ Ожидаем.Что(ТекстЛогФайла).Содержит(ПроверяемаяСтрока);
38
+ Иначе
39
+ ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(ТекстЛогФайла, ПроверяемаяСтрока);
40
+ КонецЕсли ;
41
+ КонецПроцедуры
42
+
43
+ //в файле "clean.log" есть строка "ыва"
44
+ Процедура ВФайлеЕстьСтрока (Знач ПутьФайла , Знач ПроверяемаяСтрока ) Экспорт
45
+ Файл = Новый Файл(ОбъединитьПути(ТекущийКаталог(), ПутьФайла));
46
+ ЕстьПодстрока(ПрочитатьТекстФайла(Файл), ПроверяемаяСтрока);
47
+ КонецПроцедуры
48
+
49
+ Функция ПрочитатьТекстФайла (Знач Файл )
50
+ ЧтениеТекста = Новый ЧтениеТекста;
51
+ ЧтениеТекста.Открыть(Файл.ПолноеИмя, "UTF-8" );
52
+
53
+ Строка = ЧтениеТекста.Прочитать();
54
+ ЧтениеТекста.Закрыть();
55
+ Возврат Строка;
56
+ КонецФункции // ПрочитатьТекстФайла()
57
+
58
+ Процедура ЕстьПодстрока (Знач Строка , Знач ПроверяемаяСтрока )
59
+ Если СтрЧислоСтрок (ПроверяемаяСтрока) = 1 Тогда
60
+ Ожидаем.Что(Строка, "Проверяем одиночную строку" ).Содержит(ПроверяемаяСтрока);
61
+ Иначе
62
+ ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Строка, ПроверяемаяСтрока);
63
+ КонецЕсли ;
64
+ КонецПроцедуры
65
+
66
+ //TODO перенести в ассерты oscript-library
67
+ Процедура ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках (Знач Строка , Знач Подстрока , ДопСообщениеОшибки = "" )
68
+ СообщениеОшибки = "" ;
69
+ Нашли = МногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Строка, Подстрока, СообщениеОшибки);
70
+ Если Не Нашли Тогда
71
+ ВызватьИсключение СтрШаблон ("Ожидали, что в строке <
72
+ |%1
73
+ |>
74
+ |найдем подстроку<
75
+ |%2
76
+ |>
77
+ |А это не так.
78
+ |Уточнение: %3.
79
+ |%4" , Строка, Подстрока, СообщениеОшибки, ДопСообщениеОшибки);
80
+ КонецЕсли ;
81
+ КонецПроцедуры
82
+
83
+ Функция МногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках (Знач Строка , Знач Подстрока , СообщениеОшибки = "" )
84
+ ПерваяСтрока = СокрЛП (СтрПолучитьСтроку (Подстрока, 1 ));
85
+ НашлиПервуюСтроку = Ложь ;
86
+ Для Счетчик = 1 По СтрЧислоСтрок (Строка) Цикл
87
+ ОчереднаяСтрока = СокрЛП (СтрПолучитьСтроку (Строка, Счетчик));
88
+ НашлиПервуюСтроку = Найти (ОчереднаяСтрока, ПерваяСтрока) <> 0 ;
89
+ Если НашлиПервуюСтроку Тогда
90
+ Прервать ;
91
+ КонецЕсли ;
92
+ КонецЦикла ;
93
+ Если Не НашлиПервуюСтроку Тогда
94
+ СообщениеОшибки = СтрШаблон ("Не нашли первую же подстроку <%1>" , ПерваяСтрока);
95
+ Возврат Ложь ;
96
+ КонецЕсли ;
97
+
98
+ СчетчикЧтоИщем = 2 ;
99
+ Для Счетчик = Счетчик+ 1 По СтрЧислоСтрок (Строка) Цикл
100
+ ОчереднаяСтрока = СокрЛП (СтрПолучитьСтроку (Строка, Счетчик));
101
+ ЧтоИщем = СокрЛП (СтрПолучитьСтроку (Подстрока, СчетчикЧтоИщем));
102
+ Поз = Найти (ОчереднаяСтрока, ЧтоИщем);
103
+ Если Поз = 0 Тогда
104
+ СообщениеОшибки = СтрШаблон ("Не нашли подстроку № %1 <%2>" , СчетчикЧтоИщем, ЧтоИщем);
105
+ Возврат Ложь ;
106
+ Иначе
107
+ СчетчикЧтоИщем = СчетчикЧтоИщем + 1 ;
108
+ Если СчетчикЧтоИщем > СтрЧислоСтрок (Подстрока) Тогда
109
+ Возврат Истина ;
110
+ КонецЕсли ;
111
+ КонецЕсли ;
112
+ КонецЦикла ;
113
+ Возврат СчетчикЧтоИщем > СтрЧислоСтрок (Подстрока);
114
+ КонецФункции
115
+
116
+ //в лог-файле запуска продукта отсутствует строка "ДоЭтогоШагаВыполнениеДойтиНеДолжно"
117
+ Процедура ВЛог_ФайлеЗапускаПродуктаОтсутствуетСтрока (Знач ПроверяемаяСтрока ) Экспорт
118
+ ТекстЛогФайла = БДД.ПолучитьИзКонтекста("ТекстЛогФайлаПродукта" );
119
+ Ожидаем.Что(ТекстЛогФайла).ЭтоНе().Содержит(ПроверяемаяСтрока);
120
+ КонецПроцедуры
121
+
122
+ Лог = Логирование.ПолучитьЛог(ИмяЛога());
123
+ //Лог.УстановитьУровень(Логирование.ПолучитьЛог("bdd").Уровень());
124
+ // Лог.УстановитьУровень(УровниЛога.Отладка);
0 commit comments