Передача данных из таблицы данных в файле объектов в мои определения шагов (js) - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь передать данные из таблицы в файл объектов, а затем, наконец, в определения шагов моего сценария Java, показанные ниже.

Scenario: XX | Basket Tests: Cover Type | Building + no bundle + HE 

Given I open the page with the url "http://localhost:3000" and route "/basket"
When I click the button <coverTypeID>
And I click the button <bundleID>
Then I see the result <expectedResult>

| id |             url              | coverTypeID    | bundleID | elementID | expectedResult |
| 1  | http://localhost:3000/basket | coverTypeId101 | NoBundle | null      |                |
| 2  | http://localhost:3000/basket | coverTypeId101 | NoBundle | checkbox1 |                | 
| 3  | http://localhost:3000/basket | coverTypeId101 | NoBundle | checkbox2 |                | 
| 4  | http://localhost:3000/basket | coverTypeId101 | NoBundle | checkbox3 |                | 
| 5  | http://localhost:3000/basket | coverTypeId101 | NoBundle | checkbox4 |                | 

Это мой файл Feature, я использовал для передачи данных с использованием строк, однако теперь я использую таблицу данных, которая не определяет сценарий, когда выполняются тесты.

    When("I click the button <coverTypeID>", (buttonID, next) => {

    driver.findElement(By.id(buttonID)).then(pageElement => {                           /////////////////////////////////////////////
        driver.wait(until.elementIsVisible(pageElement), 10000).then(async () => {      //This is to click a button using elementID//
         await driver.sleep(3000);                                                      /////////////////////////////////////////////
         pageElement.click();
         next();
         })
         .catch(ex => {
            console.log(ex.message, ex.stack)
         });
    }).catch(ex => {console.log(ex.message, ex.stack)});
});

Ошибка, которую я получаю, заключается в том, что тесты не определены, поскольку сценарий не соответствует определению шага должным образом из-за использования заголовков таблицы

Я смотрел на использование регулярных выражений, однако я не уверен, какой тип данных таблица данных передает при выполнении, было бы полезно какое-либо руководство, я прошел через кучу разных вопросов, и ни один из них, кажется, не совсем ответь мой.

Любая помощь будет принята с благодарностью, я бы хотел избегать регулярных выражений, если бы мог, потому что цель состоит в том, чтобы сделать код максимально читабельным.

Заранее спасибо.

1 Ответ

0 голосов
/ 01 ноября 2018

поэтому я нашел решение, а не ожидал заголовка таблицы данных, на которую ссылался, используя {string}

When("I click the button {string}", (buttonID, next) => {

Затем в таблице данных я понял, что совершил ошибку, просто не добавляя кавычки для преобразования данных в строковый формат.

Examples:
| id | coverTypeID      | bundleID       | elementID   | 
| 1  | "coverTypeId101" | "moreDetails1" | "checkbox2" |

Благодаря этому функция теперь успешно извлекает данные из файла объектов в файл JS.

...