CucumberJS Сценарий Контуры, создание кода шага - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть следующий файл функций:

Feature: Color feature

    @test
    Scenario Outline: Test color
        Given the first color is <COLOR_ONE>
        And the second color is <COLOR_TWO>
        When the user loads page
        Then the <COLOR_THREE> is displayed

        Examples:
            | COLOR_ONE | COLOR_TWO | COLOR_THREE
            | red       | white     | pink
            | blue      | black     | black
            | green     | purple    | white
             

Я пытаюсь выяснить, как создать файл шага. Всякий раз, когда я запускаю транспортир, он дает мне автоматически сгенерированный код; однако, это дает мне один для каждого сценария. Например, он хочет, чтобы я написал шесть Given шагов для каждого случая. Как я могу просто создать два Given шага с переменными, переданными в функцию? То же самое для шага Then.

Я попробовал следующее (используя Typescript), но он все еще хочет, чтобы я создал все разные варианты шагов и, конечно же, ни один из следующих шагов не прошел.

import { browser, element, by } from 'protractor';
const { Given, When, Then, defineSupportCode } = require('cucumber');

defineSupportCode(function ({ setDefaultTimeout }) {
    setDefaultTimeout(120 * 1000);
});

Given(/^ the first color is "([^"]*)" $/, (color, next) => {
    next();
});

Given(/^ the second color is "([^"]*)" $/, (color, next) => {
    next();
});

When(/^ the user loads page $/, (next) => {
    next();
});

Then(/^ the "([^"]*)" is displayed $/, (color, next) => {
    next();
});

1 Ответ

0 голосов
/ 28 апреля 2018

Так что на самом деле у меня было две ошибки. У меня не было каналов после COLOR_THREE в файле объектов, и мне нужно было использовать {variable_here} вместо этого в файле шагов. Вот обновленный файл функций и код:

Файл функции:

Feature: Color feature

    @test
    Scenario Outline: Test color
        Given the first color is <COLOR_ONE>
        And the second color is <COLOR_TWO>
        When the user loads page
        Then the <COLOR_THREE> is displayed

        Examples:
        | COLOR_ONE | COLOR_TWO | COLOR_THREE |
        | red       | white     | pink        |
        | blue      | black     | black       |
        | green     | purple    | white       |
         

Файл шага:

import { browser, element, by } from 'protractor';
const { Given, When, Then, defineSupportCode } = require('cucumber');

defineSupportCode(function ({ setDefaultTimeout }) {
    setDefaultTimeout(120 * 1000);
});

Given('the first color is {color}', (color, next) => {
    next();
});

Given('the second color is {color}', (color, next) => {
    next();
});

When('the user loads page', (next) => {
    next();
});

Then('the {color} is displayed', (color, next) => {
    next();
});

Теперь вы получаете различные значения из таблицы в файле объектов внутри переменных. И тесты проходят (конечно, ничего не проверялось в приведенном выше примере). Надеюсь, это кому-нибудь поможет!

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