[英]Using pytest.fixture to opt out of function
我有一個我不想每次在Flask-RESTFul API中運行測試時都運行的函數。 這是設置的示例:
class function(Resource):
def post(self):
print 'test'
do_action()
return {'success':True}
在我的測試中,我想運行此函數,但忽略do_action()。 我如何使用pytest做到這一點?
這似乎是標記測試的好機會
@pytest.mark.foo_test
class function(Resource):
def post(self):
print 'test'
do_action()
return {'success':True}
那你打電話給
py.test -v -m foo_test
它將僅運行標記為“ foo_test”的測試
如果您致電
py.test -v -m "not foo_test"
它將運行所有未標記為“ foo_test”的測試
您可以在測試中模擬do_action
:
def test_post(resource, mocker):
m = mocker.patch.object(module_with_do_action, 'do_action')
resource.post()
assert m.call_count == 1
因此,在此測試中不會調用實際函數,其附加好處是您可以檢查post
實現是否實際調用該函數。
這需要安裝pytest-mocker (無恥的插件)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.