mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
Метод для формирования вариантов параметров
This commit is contained in:
parent
f296aef9e0
commit
2a269f860d
@ -359,6 +359,29 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Формирует массив различных комбиначий параметров
|
||||
//
|
||||
// Предназначено для формирования таблицы возможных значений параметров для краш теста метода.
|
||||
//
|
||||
// Параметры:
|
||||
// ЗначенияПоУмолчанию - Структура - Значения параметров по умолчанию.
|
||||
// ЗначенияПараметров - Структура - Массивы значений для каждого параметра.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из Структура - Варианты параметров.
|
||||
Функция ВариантыПараметров(ЗначенияПоУмолчанию, ЗначенияПараметров) Экспорт
|
||||
|
||||
Варианты = Новый Массив;
|
||||
Варианты.Добавить(ЗначенияПоУмолчанию);
|
||||
|
||||
Ключи = ЮТОбщий.ВыгрузитьЗначения(ЗначенияПараметров, "Ключ");
|
||||
|
||||
ДобавитьВарианты(Варианты, ЗначенияПоУмолчанию, ЗначенияПараметров, Ключи, 0);
|
||||
|
||||
Возврат Варианты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает конструктор создания тестовых данных
|
||||
//
|
||||
// Конструктор имеет ряд особенностей:
|
||||
@ -413,3 +436,26 @@
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ДобавитьВарианты(Варианты, БазоваяСтруктура, ЗначенияПараметров, Ключи, Инд)
|
||||
|
||||
Если Инд > Ключи.ВГраница() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Ключ = Ключи[Инд];
|
||||
Для Каждого Значение Из ЗначенияПараметров[Ключ] Цикл
|
||||
|
||||
Вариант = ЮТОбщий.СкопироватьСтруктуру(БазоваяСтруктура);
|
||||
Вариант[Ключ] = Значение;
|
||||
Варианты.Добавить(Вариант);
|
||||
|
||||
ДобавитьВарианты(Варианты, Вариант, ЗначенияПараметров, Ключи, Инд + 1);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -23,7 +23,8 @@
|
||||
ЮТТесты
|
||||
.ВТранзакции()
|
||||
.УдалениеТестовыхДанных()
|
||||
.ДобавитьТест("Удалить");
|
||||
.ДобавитьТест("Удалить")
|
||||
.ДобавитьТест("СобратьМассивВариантов");
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -57,5 +58,24 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СобратьМассивВариантов() Экспорт
|
||||
|
||||
БазоваяСтруктура = Новый Структура("Числа, Строки");
|
||||
Значения = Новый Структура("Числа, Строки", ЮТОбщий.ЗначениеВМассиве(1, 2), ЮТОбщий.ЗначениеВМассиве("1", "2"));
|
||||
|
||||
Результат = ЮТест.Данные().СобратьМассивВариантов(БазоваяСтруктура, Значения);
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлину(7)
|
||||
.Элемент(0).Равно(БазоваяСтруктура)
|
||||
.Элемент(1).Равно(Новый Структура("Числа, Строки", 1))
|
||||
.Элемент(2).Равно(Новый Структура("Числа, Строки", 1, "1"))
|
||||
.Элемент(3).Равно(Новый Структура("Числа, Строки", 1, "2"))
|
||||
.Элемент(5).Равно(Новый Структура("Числа, Строки", 2, "1"))
|
||||
.Элемент(6).Равно(Новый Структура("Числа, Строки", 2, "2"))
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user