gpt4 book ai didi

python - pytest 测试具有已知结果的函数

转载 作者:行者123 更新时间:2023-12-01 08:18:03 25 4
gpt4 key购买 nike

假设我有以下类(class):

class SimpleClass:

def __init__(self, value):
self.__value = value

@property
def value(self):
return self.__value

def power_value(self, power):
return self.value**power

我将创建此类的一个实例。

x = SimpleClass(2)

我想创建一个测试,通过与预期结果进行比较来断言 power_value 方法工作正常。

def test_power_value(simple, power, result):
assert simple.power_value(power) == result

我正在寻找使用pytest实现此目的的正确方法,因为我这样做的方式,它会抛出一个错误(pytest正在寻找simplepowerresult 为固定装置)。最终,我希望能够按如下方式使用此测试:

test_power_value(x, 2, 4)

with pytest.raises(AssertionError):
test_power_value(x, 2, 5)

最佳答案

您定义的“test_power_value”并不是真正的测试,而是 pytest 中的辅助函数。

在 pytest 中,您在代码中运行测试函数 - pytest 为您执行测试 - 这就是它寻找固定装置的原因。只需重命名您的函数,使其不以“test”开头

def assert_power_value(simple, power, result):
assert simple.power_value(power) == result

您可以在测试中使用它:

def test_foo():
x = 1
with pytest.raises(AssertionError):
assert_power_value(x, 2, 5)

十个运行测试:

pytest your_test_file.py

关于python - pytest 测试具有已知结果的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54869522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com