Ank*_*edi 5 python pytest python-3.x
我有一个模型和一个控制器,我正在尝试测试:
class Model:
def __init__(self):
self.display = ""
def set_display(self, display):
self.display = display
import pytest
from model import Model
from controller import Controller
@pytest.fixture
def model():
return Model()
@pytest.fixture
def controller(model):
return Controller(model)
def test_clear_button(controller):
controller.button_pressed("4")
controller.button_pressed("2")
controller.button_pressed("C")
assert model.display == "0"
Run Code Online (Sandbox Code Playgroud)
E AttributeError: 'function' 对象没有属性 'display'
以上是我每次运行测试时遇到的错误/失败。
class Controller:
def __init__(self, model):
self.model = model
def button_pressed(self, button_label):
pass
Run Code Online (Sandbox Code Playgroud)
根据pytest,通过执行以下操作:
@pytest.fixture
def model():
return Model()
Run Code Online (Sandbox Code Playgroud)
进而:
@pytest.fixture
def controller(model):
return Controller(model)
Run Code Online (Sandbox Code Playgroud)
您定义一个名为的固定装置,controller该固定装置引用另一个称为model定义model该类实例的固定装置Controller。因此,您似乎没有model正确引用:
def test_clear_button(controller):
controller.button_pressed("4")
controller.button_pressed("2")
controller.button_pressed("C")
assert controller.model.display == "0"
Run Code Online (Sandbox Code Playgroud)
或者,或者:
def test_clear_button(controller, model):
controller.button_pressed("4")
controller.button_pressed("2")
controller.button_pressed("C")
assert model.display == "0"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7993 次 |
| 最近记录: |