Skip to content

Commit 2ff5706

Browse files
committed
Тесты
1 parent 86611a4 commit 2ff5706

28 files changed

Lines changed: 2584 additions & 1841 deletions

File tree

tests/ТестыБенчмарков.os

Lines changed: 0 additions & 822 deletions
This file was deleted.
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
// BSLLS:LineLength-off
2+
// BSLLS:DuplicateStringLiteral-off
3+
// BSLLS:MagicNumber-off
4+
5+
#Использовать asserts
6+
#Использовать fluent
7+
#Использовать tempfiles
8+
#Использовать "helpers"
9+
#Использовать "fixtures/benchmarks"
10+
11+
Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов
12+
13+
#Область ОбработчикиСобытий
14+
15+
&Инициализация
16+
Процедура ПередВсеми() Экспорт
17+
_МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов();
18+
КонецПроцедуры
19+
20+
&Завершение
21+
Процедура ПослеВсех() Экспорт
22+
_МенеджерВременныхФайлов.Удалить();
23+
КонецПроцедуры
24+
25+
#КонецОбласти
26+
27+
#Область Тесты
28+
29+
&Тест
30+
Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномКоличествеИтераций() Экспорт
31+
32+
// Подготовка
33+
НевалидныеЗначения = Новый Массив();
34+
НевалидныеЗначения.Добавить(0);
35+
НевалидныеЗначения.Добавить(-10);
36+
37+
ТекстОшибки = "Количество итераций не может быть меньше 1";
38+
39+
Конфигурация = Новый КонфигурацияБенчмарков();
40+
41+
Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл
42+
43+
Параметры = Новый Массив();
44+
Параметры.Добавить(НевалидноеЗначение);
45+
46+
// Действие и Проверка
47+
Ожидаем
48+
.Что(Конфигурация)
49+
.Метод("УстановитьКоличествоИтераций", Параметры)
50+
.ВыбрасываетИсключение(ТекстОшибки);
51+
52+
КонецЦикла;
53+
54+
КонецПроцедуры
55+
56+
&Тест
57+
Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномКоличествеВызововЗаИтерацию() Экспорт
58+
59+
// Подготовка
60+
НевалидныеЗначения = Новый Массив();
61+
НевалидныеЗначения.Добавить(-10);
62+
63+
ТекстОшибки = "Количество вызовов за итерацию не может быть меньше 0";
64+
65+
Конфигурация = Новый КонфигурацияБенчмарков();
66+
67+
Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл
68+
69+
Параметры = Новый Массив();
70+
Параметры.Добавить(НевалидноеЗначение);
71+
72+
// Действие и Проверка
73+
Ожидаем
74+
.Что(Конфигурация)
75+
.Метод("УстановитьКоличествоВызововЗаИтерацию", Параметры)
76+
.ВыбрасываетИсключение(ТекстОшибки);
77+
78+
КонецЦикла;
79+
80+
КонецПроцедуры
81+
82+
&Тест
83+
Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномКоличествеИтерацийПрогрева() Экспорт
84+
85+
// Подготовка
86+
НевалидныеЗначения = Новый Массив();
87+
НевалидныеЗначения.Добавить(-10);
88+
89+
ТекстОшибки = "Количество прогревочных итераций не может быть меньше 0";
90+
91+
Конфигурация = Новый КонфигурацияБенчмарков();
92+
93+
Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл
94+
95+
Параметры = Новый Массив();
96+
Параметры.Добавить(НевалидноеЗначение);
97+
98+
// Действие и Проверка
99+
Ожидаем
100+
.Что(Конфигурация)
101+
.Метод("УстановитьКоличествоПрогревочныхИтераций", Параметры)
102+
.ВыбрасываетИсключение(ТекстОшибки);
103+
104+
КонецЦикла;
105+
106+
КонецПроцедуры
107+
108+
&Тест
109+
Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномМинимальномВремениИтерации() Экспорт
110+
111+
// Подготовка
112+
НевалидныеЗначения = Новый Массив();
113+
НевалидныеЗначения.Добавить(0);
114+
НевалидныеЗначения.Добавить(-10);
115+
116+
ТекстОшибки = "Минимальное время итерации не может быть меньше 1 мс";
117+
118+
Конфигурация = Новый КонфигурацияБенчмарков();
119+
120+
Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл
121+
122+
Параметры = Новый Массив();
123+
Параметры.Добавить(НевалидноеЗначение);
124+
125+
// Действие и Проверка
126+
Ожидаем
127+
.Что(Конфигурация)
128+
.Метод("УстановитьМинимальноеВремяИтерации", Параметры)
129+
.ВыбрасываетИсключение(ТекстОшибки);
130+
131+
КонецЦикла;
132+
133+
КонецПроцедуры
134+
135+
&Тест
136+
Процедура ТестДолжен_ВыброситьИсключениеПриНевалидномМинимальномКоличествеВызововЗаИтерацию() Экспорт
137+
138+
// Подготовка
139+
НевалидныеЗначения = Новый Массив();
140+
НевалидныеЗначения.Добавить(0);
141+
НевалидныеЗначения.Добавить(-10);
142+
143+
ТекстОшибки = "Минимальное количество вызовов за итерацию не может быть меньше 1";
144+
145+
Конфигурация = Новый КонфигурацияБенчмарков();
146+
147+
Для Каждого НевалидноеЗначение Из НевалидныеЗначения Цикл
148+
149+
Параметры = Новый Массив();
150+
Параметры.Добавить(НевалидноеЗначение);
151+
152+
// Действие и Проверка
153+
Ожидаем
154+
.Что(Конфигурация)
155+
.Метод("УстановитьМинимальноеКоличествоВызововЗаИтерацию", Параметры)
156+
.ВыбрасываетИсключение(ТекстОшибки);
157+
158+
КонецЦикла;
159+
160+
КонецПроцедуры
161+
162+
#КонецОбласти

tests/ТестыГенератораКейсовБенчмарков.os

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#Использовать "helpers"
55
#Использовать "fixtures/benchmarks"
66

7+
#Область Тесты
8+
79
&Тест
810
Процедура ТестДолжен_СгенерироватьОдинКейсДляБенчмаркаБезПараметров() Экспорт
911

@@ -104,6 +106,10 @@
104106

105107
КонецПроцедуры
106108

109+
#КонецОбласти
110+
111+
#Область СлужебныеПроцедурыИФункции
112+
107113
Функция ПредставленияКейсов(Кейсы)
108114

109115
Результат = Новый Массив();
@@ -135,3 +141,5 @@
135141
Возврат Неопределено;
136142

137143
КонецФункции
144+
145+
#КонецОбласти
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
// BSLLS:LineLength-off
2+
// BSLLS:DuplicateStringLiteral-off
3+
// BSLLS:MagicNumber-off
4+
5+
#Использовать asserts
6+
#Использовать fluent
7+
#Использовать fs
8+
#Использовать tempfiles
9+
#Использовать "helpers"
10+
#Использовать "fixtures/benchmarks"
11+
12+
Перем _МенеджерВременныхФайлов; // МенеджерВременныхФайлов
13+
14+
#Область ОбработчикиСобытий
15+
16+
&Инициализация
17+
Процедура ПередВсеми() Экспорт
18+
19+
_МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов();
20+
21+
КонецПроцедуры
22+
23+
&После
24+
Процедура ПослеЗапускаТеста() Экспорт
25+
26+
КаталогАртефактов = ".\BenchmarkArtifacts";
27+
28+
ФС.УдалитьФайлы(КаталогАртефактов);
29+
30+
КонецПроцедуры
31+
32+
&Завершение
33+
Процедура ПослеВсех() Экспорт
34+
35+
_МенеджерВременныхФайлов.Удалить();
36+
37+
КонецПроцедуры
38+
39+
#КонецОбласти
40+
41+
#Область Тесты
42+
43+
&Тест
44+
Процедура ТестДолжен_СкопироватьДескрипторБенчмарка() Экспорт
45+
46+
// Подготовка
47+
Тип = Тип("БенчмаркСПараметрамиМетода");
48+
49+
ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип);
50+
Дескриптор = ДескрипторыБенчмарков.НайтиПоИмени("Бенчмарк")
51+
.ДобавитьИсточникПараметров("Источник1")
52+
.ДобавитьИсточникПараметров("Источник2")
53+
.ИспользоватьКакЭталон()
54+
.УстановитьКатегорию("Категория")
55+
.УстановитьНаименование("Наименование для копии");
56+
57+
КопияДескриптора = Дескриптор.Скопировать();
58+
59+
// Действие
60+
НаборыПараметров = КопияДескриптора.НаборыПараметров();
61+
ИсточникиПараметров = КопияДескриптора.ИсточникиПараметров();
62+
63+
// Проверка
64+
Ожидаем.Что(НаборыПараметров[0].Получить(0).Значение()).Равно(10);
65+
Ожидаем.Что(НаборыПараметров[0].Получить(1).Значение()).Равно(100);
66+
Ожидаем.Что(НаборыПараметров[1].Получить(0).Значение()).Равно(20);
67+
Ожидаем.Что(НаборыПараметров[1].Получить(1).Значение()).Равно(200);
68+
Ожидаем.Что(КопияДескриптора.ЭтоЭталон()).ЭтоИстина();
69+
Ожидаем.Что(КопияДескриптора.Категория()).Равно("Категория");
70+
Ожидаем.Что(КопияДескриптора.Наименование()).Равно("Наименование для копии");
71+
Ожидаем.Что(ИсточникиПараметров[0]).Равно("Источник1");
72+
Ожидаем.Что(ИсточникиПараметров[1]).Равно("Источник2");
73+
74+
КонецПроцедуры
75+
76+
&Тест
77+
Процедура ТестДолжен_ИзвлечьКатегорииИзАннотации() Экспорт
78+
79+
// Подготовка
80+
Тип = Тип("БенчмаркиПоКатегориям");
81+
82+
Конфигурация = Новый КонфигурацияБенчмарков(Тип);
83+
ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация);
84+
85+
// Действие
86+
Результат = Бенчмаркинг.Запустить(Тип, Конфигурация);
87+
88+
// Проверка
89+
ИмяКолонки = КолонкиОтчетаБенчмарков.Категория;
90+
91+
Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(4);
92+
Ожидаем.Что(Результат.Отчет.Таблица[0][ИмяКолонки]).Равно("А");
93+
Ожидаем.Что(Результат.Отчет.Таблица[1][ИмяКолонки]).Равно("А");
94+
Ожидаем.Что(Результат.Отчет.Таблица[2][ИмяКолонки]).Равно("Б");
95+
Ожидаем.Что(Результат.Отчет.Таблица[3][ИмяКолонки]).Равно("Б");
96+
97+
КонецПроцедуры
98+
99+
&Тест
100+
Процедура ТестДолжен_УстановитьКатегориюЧерезМетодДескриптора() Экспорт
101+
102+
// Подготовка
103+
Тип = Тип("ПустойБенчмарк");
104+
105+
Конфигурация = Новый КонфигурацияБенчмарков(Тип);
106+
ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация);
107+
108+
ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип);
109+
ДескрипторыБенчмарков.ПолучитьПервый().УстановитьКатегорию("В");
110+
111+
// Действие
112+
Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация);
113+
114+
// Проверка
115+
Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(1);
116+
Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Категория]).Равно("В");
117+
118+
КонецПроцедуры
119+
120+
&Тест
121+
Процедура ТестДолжен_ОтфильтроватьНаборДескрипторовБенчмарков() Экспорт
122+
123+
// Подготовка
124+
Тип = Тип("БенчмаркиПоКатегориям");
125+
126+
// Действие
127+
ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип);
128+
ДескрипторыБенчмарков.Фильтровать("Элемент -> Прав(Элемент.Метод(), 1) = ""2""");
129+
130+
// Проверка
131+
Ожидаем.Что(ДескрипторыБенчмарков.ВМассив().Количество()).Равно(2);
132+
Ожидаем.Что(ДескрипторыБенчмарков.Получить(0).Метод()).Равно("БенчмаркА2");
133+
Ожидаем.Что(ДескрипторыБенчмарков.Получить(1).Метод()).Равно("БенчмаркБ2");
134+
135+
КонецПроцедуры
136+
137+
&Тест
138+
Процедура ТестДолжен_ИзвлечьНаименованиеИзАннотацииБенчмарк() Экспорт
139+
140+
// Подготовка
141+
Тип = Тип("БенчмаркСНаименованием");
142+
143+
ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип);
144+
145+
// Действие
146+
ДескрипторСНаименованием = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркСНаименованием");
147+
ДескрипторБезНаименования = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркБезНаименования");
148+
149+
// Проверка
150+
Ожидаем.Что(ДескрипторСНаименованием.Наименование()).Равно("Тестовое наименование бенчмарка");
151+
Ожидаем.Что(ДескрипторБезНаименования.Наименование()).Равно("");
152+
153+
КонецПроцедуры
154+
155+
&Тест
156+
Процедура ТестДолжен_УстановитьНаименованиеЧерезМетодДескриптора() Экспорт
157+
158+
// Подготовка
159+
Тип = Тип("ПустойБенчмарк");
160+
161+
ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип);
162+
Дескриптор = ДескрипторыБенчмарков.ПолучитьПервый();
163+
164+
// Действие
165+
Дескриптор.УстановитьНаименование("Мое наименование");
166+
167+
// Проверка
168+
Ожидаем.Что(Дескриптор.Наименование()).Равно("Мое наименование");
169+
170+
КонецПроцедуры
171+
172+
#КонецОбласти

0 commit comments

Comments
 (0)