Cucumber java - Добавление строки из файла .txt в определение шага огурца - PullRequest
0 голосов
/ 07 января 2020

Я очень новичок в программировании, поэтому, пожалуйста, go Полегче на меня.

Я пытаюсь создать новый сценарий, который позволит мне вводить фразу, найденную в текстовом файле. То, что у меня есть в моем файле stepdefinition, работает нормально, но я хотел бы редактировать текстовый файл между каждым запуском Cucumber. Тогда поисковый термин может быть изменен без редактирования файла объекта. Текстовый файл должен содержать только одну строку.

Это мой текущий код:

@And("^I enter into input field (.*) the search term (.*)$")
    public void i_enter_into_input_field_the_search_term(String field, String value) throws Throwable {
        // searches the text written in search.txt
        field = removeDoubleQuotes(field);
        value = removeDoubleQuotes(value);
        System.out.println("I enter inptu input field:"+ xpath.get(field) + " and : "+ value);
        WebElement element = getDriver().findElement(By.xpath(xpath.get(field)));
        element.clear();
        element.sendKeys("cucumber help needed");
    }

Ответы [ 3 ]

0 голосов
/ 09 января 2020

Меня немного смущает вопрос, зачем вам нужен файл .txt, чтобы что-то менять между прогонами огурца. Изменения, которые вы хотите сделать, предопределены?

Вы, похоже, выполняете подстановку параметров поля и значения из файла .feature в свои тесты, что составляет solid. Итак, я предполагаю, что у вас есть сценарий ios как

Scenario: I expect this thing to happen
Given some initial step 
And I enter into input field FIELD1 the search term VALUE1
Then I expect this thing to happen

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

Итак, ваш файл объектов будет выглядеть так:

Scenario: I expect this thing to happen
Given some initial step 
And I enter into input field FIELD1 the search term VALUE1
Then I expect this thing to happen

Scenario: I expect that thing to happen
Given some initial step 
And I enter into input field FIELD2 the search term VALUE2
Then I expect that thing to happen

.. et c .. et c ..

Другими словами, если вы знаете заранее, какие поля и значения go присутствуют как часть вашего сценария ios, просто перечислите их все в файле объектов (а не в .txt), чтобы охватить весь ваш сценарий ios.

Я что-то упустил? Надеюсь, это поможет.

0 голосов
/ 14 января 2020

Опираясь на ответ @ Jo sh, вы можете использовать Scenario Outline s, чтобы сделать очень похожий сценарий ios более читабельным.

Например, два сценария ios в его ответе функционально эквивалентны:

Scenario Outline: I expect things to happen
  Given some initial step 
  And I enter into input field <Field_Name> the search term <Value>
  Then I expect this thing to happen

  Examples:
  | Field_Name | Value  |
  | FIELD1     | VALUE1 |
  | FIELD2     | VALUE2 |

Затем можно создать еще один сценарий ios, добавив дополнительные строки в таблицу Examples. Подробнее см. Документация по огурцам .

0 голосов
/ 08 января 2020

Если вы всегда читаете из одного и того же файла, вы можете использовать Files.readAllLines (path, charset) , чтобы прочитать содержимое файла и использовать его.

...