Поведение - Тестирование с использованием пустых полей Пример

1

Я использую Behave для автоматизации тестирования конфигурационного файла, поскольку в рамках этого теста мне нужно заполнить различные поля в файле конфигурации недопустимыми и пустыми полями. Когда я ввожу значения, я могу сделать это, используя схему сценария, введя значения в примерах. Однако, когда я пытаюсь ввести пустое поле, используя этот метод, Behave не нравится тот факт, что нет значения.

Есть ли простой способ передать пустое значение из файла примеров, или мне нужно будет проверить эти условия, используя отдельный тест на поведение

feature
    Scenario Outline:Misconfigured Identity Listener
             Given an already stopped Identity Listener
             And parameter <parameter> is configured to value <config_value>
             When the Identity Listener is started
             Then the identity listener process is not present on the system
             And the log contains a <message> showing that the parameter is not configured
            Examples: Protocols
             |parameter                        |message                           |config_value|
             |cache_ip_address                 | cache_ip_address                 |            |
             |cache_ip_address                 | cache_ip_address                 | 123.123.12 |

шаг, на котором я определяю значение конфигурации

@given('parameter {parameter} is configured to value {config_value}')
def step_impl(context, parameter, config_value):
    context.parameter = parameter
    context.config_value = config_value
    context.identity_listener.update_config(parameter, config_value)

изменение конфигурационного файла с помощью sed -i (я взаимодействую с Linux-модулем в этом тесте)

 def update_config(self, param, config_value):
        command = 'sudo sh -c "sed -i'
        command = command + " '/" + param + "/c\\" + param + "= "+ config_value + " \\' {0}\""
        command = command.format(self.config_file)
        self.il_ssh.runcmd(command)

Благодаря ответу от @Verv я получил это рабочее решение ниже

передал пустое значение для полей, где мне не нужно переданное значение

 |parameter                        |message                           |config_value|
 |cache_ip_address                 | cache_ip_address                 | empty      |

Добавлен оператор if else в мой шаг конфигурации обновления

def update_config(self, param, config_value):
    if config_value == "empty":
        il_config = ""
    else:
        il_config = config_value

    command = 'sudo sh -c "sed -i'
    command = command + " '/" + param + "/c\\" + param + "= " + il_config + " \\' {0}\""
    command = command.format(self.config_file)
    self.il_ssh.runcmd(command)
Теги:
python-behave

1 ответ

1
Лучший ответ

Вы можете поместить что-то вроде empty в поле и настроить свой метод так, чтобы всякий раз, когда значение поля empty, вы рассматриваете его как фактическую пустую строку (например, "")

  • 1
    Это сработало отлично, спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню