Мне нужно выполнить итерацию по многим параметрам, чтобы мне пришлось вкладывать циклы внутри циклов.
К сожалению, в других вопросах, которые я нашел в SO (например: Использование циклов в Jasmine (с внедренным сервисом) ), вложенных циклов нет.
Мой (упрощенный) код TypeScript / Protractor выглядит следующим образом:
describe('Nested loops tests', () => {
const testedPage = new somePage();
const testParams: number[][] = [[0, 2, 20], [1, 5, 11] ];
beforeAll(() => {
// some code
});
afterAll(() => {
// some code
});
testParams.forEach(function (testParamsSet) {
const param1: number = testParamsSet[0];
const param2: number[] = Array.from({ length: testParamsSet[1] }, (v, k) => k);
const param3: number[] = Array.from({ length: testParamsSet[2] }, (v, k) => k);
describe('For selected element: ' + param1, () => {
beforeAll(() => {
testedPage.selectOption(param1);
});
param2.forEach(function(par2) {
param3.forEach(function(par3){
it('should work for par2:' + par2 + ' and par3: ' + par3, () => {
// some code
// some expect
});
});
});
});
});
});
Когда я запускаю тесты, блок it
не выполняется:
Executed 0 of 0 specs SUCCESS in 0.016 sec.
Полагаю, что это может сработать, если я переместу все блоки в блок it
.
Однако это означает, что в результате у меня будет один it
с проверенным огромным количеством expect
блоков.