0

我正在寻找一种方法,如何在具有多个输入的函数中传递两个或多个输入。这是一个简单函数的示例。我希望这个工作pytest-bdd

我如何测试这个场景?

实际上,这个测试总是通过但不应该,因为 1 + 2 = 3,检查 1。

  Scenario: Calc 
    Given Calc app 
    When Enter 1
    And Enter 2
    Then App return result

功能代码:

def calc():
    number_one = float(input('Enter number: '))
    number_two = float(input('Enter number: '))
    print(number_one + number_two)

@pytest.fixture
def calc_n():
    return calc()


def test_calc():
    pass


@given('Calc app')
def step1(calc_n):
    calc_n()


@when("Enter <number>")
def step2(number):
    with mock.patch('builtins.input', return_value=number):
        calc_n()

@then("App return result")
def step_impl(capsys):
    out,err = capsys.readouterr()
    assert out == 1
    assert err == ''
4

0 回答 0