对不起,标题,我一定要更新...我所拥有的是pytest测试功能:
def test_update_db():
mock_connection = Mock(spec=Connection)
db_updater = DbUpdater(mock_connection)
db_updater.run("some parameter")
mock_connection.gna.assert_called_with("some different parameter")
可以,但是很丑:db_updater应该确实是一个固定装置。但是我必须将连接对象传递给它,所以我宁愿拥有:
@pytest.fixture
def db_updater():
mock_connection = Mock(spec=Connection)
return DbUpdater(mock_connection)
def test_update_db(db_updater):
db_updater.run("some parameter")
mock_connection.gna.assert_called_with("some different parameter")
更好的测试功能,但有一个问题:mock_connection不存在...我该如何解决?
答案 0 :(得分:1)
您可以定义一个夹具来依赖另一个夹具,然后在测试中将它们都设为args。这应该起作用:
import pytest
@pytest.fixture
def conn():
return Mock(spec=Connection)
@pytest.fixture
def db_updater(conn):
return DbUpdater(conn)
def test_update_db(conn, db_updater):
db_updater.run("some parameter")
conn.gna.assert_called_with("some different parameter")