Есть ли способ использовать множественное число и единственное число в одном и том же шаге BDD? - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь реализовать шаг BDD, который можно использовать, если этот шаг относится к единственному или множественному числу, например: Тогда я должен увидеть имя "Джон" отображается но я также хочу использовать тот же шаг, если у меня есть более одного имени Тогда я должен увидеть имена "Джон, Джордж" отображаются

В Java вы можете сделать это, когда реализуете такой шаг: @Step («Тогда я должен увидеть имя? (Регулярное выражение) (:? Is | are) отображается»)

? - для множественного числа и (:? |) это когда вы хотите заменить слово

В файле объектов при вводе (имена или имя; есть или есть) он указывает на тот же шаг

Есть ли способ сделать это в хлюпающем?

1 Ответ

0 голосов
/ 04 декабря 2018

См. Использование шаблонов шагов с регулярными выражениями в руководстве froglogic Squish для использования регулярных выражений в шагах BDD.

Исходя из этого, у меня работает следующее:

# Use (?:...) because it is non-capturing
# Also see https://docs.python.org/2/library/re.html
@Then("I should see the (?:name|names) \"(.*)\" (?:is|are) displayed", regexp=True)
def step(context, nameOrNamesCommaSeparated):
    """Examples:
        Then I should see the name "John" is displayed
        Then I should see the names "John, George" are displayed
    """

    names = []
    if "," in nameOrNamesCommaSeparated:
        names = nameOrNamesCommaSeparated.split(",")
        for i, n in enumerate(names):
            names[i] = n.strip()
    else:
        names = [nameOrNamesCommaSeparated]

    for i, n in enumerate(names):
        test.log("Name #%s: %s" % (i, n))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...