pytest中fixture,pytest实现fixture的原理
本文主要介绍pytest的官方文档《夹具的自动使用》,有需要的朋友可以参考一下。希望能有所帮助。祝大家进步很大,早日升职加薪。
现在我们知道夹具是一个非常强大的功能。
有时候,我们可能会写一个fixture,这个fixture的所有测试功能都会用到它。
这时,您可以使用autouse自动使所有的测试函数请求它,而不需要在每个测试函数中显示请求。
具体用法是将autouse=True传递给fixture的修饰。
导入pytest
@pytest.fixture
定义first_entry():
返回“a”
@pytest.fixture
定义订单(第一项):
return []
@pytest.fixture(autouse=True)
定义append_first(order,first_entry):
退货单.追加(first_entry)
def test_string_only(订单,第一个条目):
断言顺序==[first_entry]
def test_string_and_int(顺序,第一个条目):
order.append(2)
断言顺序==[first_entry,2]
我们先来看看第一个测试函数test _ string _ only (order,first _ entry)的执行情况:
虽然在测试函数中请求了两个fixture函数,但order没有获得[],first_entry没有获得 a 。因为有一个fixture函数的autouse=True,所以会先调用append_first并执行。在执行append_first的过程中,分别请求order和fixture函数first_entry。然后append_first分别追加[]和 a ,最后返回[a]。因此,断言assert order==[first_entry]是成功的。同样,第二个测试函数test _ string _ and _ int (order,first _ entry)的执行过程也是一样的。
以上是pytest官方文件解读固定物自动使用的详细内容。更多pytest对fixtures自动使用的解读,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。