我正在尝试使用pytest
测试python函数,但出现此错误。
import pytest
class Example:
def __init__(self):
pass
@staticmethod
def test_func(list_arg):
return len(list_arg)
@pytest.fixture()
def example_instance():
return Example()
def test_util_fun():
empty_val = []
assert example_instance.test_func(empty_val) == 2
错误:
AttributeError: 'function' object has no attribute 'test_func'
pytest和python版本
python 3.7
pytest 4.5.0
答案 0 :(得分:1)
您需要将example_instance
作为参数传递给test_util_fun
;它并不是仅仅因为它是一种装置而神奇地出现:
def test_util_fun(example_instance):
empty_val = []
assert example_instance.test_func(empty_val) == 2
pytest
固定装置的规则有些不同。如果不加说明,则example_instance
将绑定到功能对象本身。
但是,如果您将其指定为参数,则pytest
将根据指定的范围在需要时自动实例化灯具,并将其传递给测试函数。