Как правильно вложить циклы в циклы в Жасмин / транспортир?Где должны быть размещены блоки `it` и` description`? - PullRequest
0 голосов
/ 11 сентября 2018

Мне нужно выполнить итерацию по многим параметрам, чтобы мне пришлось вкладывать циклы внутри циклов. К сожалению, в других вопросах, которые я нашел в 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 блоков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...