Поведение - Тестирование с использованием пустых полей Пример - PullRequest
0 голосов
/ 24 сентября 2018

Я использую 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 box)

 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)

1 Ответ

0 голосов
/ 24 сентября 2018

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

...