我正在寻找一种方法,如何在具有多个输入的函数中传递两个或多个输入。这是一个简单函数的示例。我希望这个工作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 == ''