




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第pytest官方文档解读fixtures调用fixtures及fixture复用性目录fixtures调用其他fixtures及fixture复用性一、Fixtures调用别的Fixtures二、Fixtures的复用性
fixtures调用其他fixtures及fixture复用性
pytest最大的优点之一就是它非常灵活。
它可以将复杂的测试需求简化为更简单和有组织的函数,然后这些函数可以根据自身的需求去依赖别的函数。
fixtures可以调用别的fixtures正是灵活性的体现之一。
一、Fixtures调用别的Fixtures
直接看一个简单示例:
importpytest
#Arrange
@pytest.fixture
deffirst_entry():
#这是一个fixture函数,返回值:"a"
return"a"
#Arrange
@pytest.fixture
deforder(first_entry):
#这是另一个fixture函数,请求了上一个fixture函数first_entry(),
#并且把first_entry()的返回值,放进了列表[]里,最后返回
return[first_entry]
deftest_string(order):
#Act
#测试函数中请求了第二个fixture函数order,可以拿到返回的[]
order.append("b")
#Assert
assertorder==["a","b"]
可以看到,pytest中的某个fixture请求别的fixture,就像测试函数请求fixture一样,所有的请求规则都适用。
同样,如果这些事情换我们自己来做的话,应该是下面这样子:
deffirst_entry():
return"a"
deforder(first_entry):
return[first_entry]
deftest_string(order):
#Act
order.append("b")
#Assert
assertorder==["a","b"]
entry=first_entry()
the_list=order(first_entry=entry)
test_string(order=the_list)
二、Fixtures的复用性
pytest中的fixtures还可以让我们像使用普通函数一样,能够定义反复重用的通用setup步骤。
两个不同的测试函数可以请求相同的fixture,每个测试函数都会获得该fixture的各自结果。
这样的优点就是,确保不同的测试函数之间不会相互影响。
我们可以使用这种机制来确保每个测试函数都获得各自新的、干净的、一致的数据。
importpytest
#Arrange
@pytest.fixture
deffirst_entry():
return"a"
#Arrange
@pytest.fixture
deforder(first_entry):
return[first_entry]
deftest_string(order):
#Act
order.append("b")
#Assert
assertorder==["a","b"]
deftest_int(order):
#Act
order.append(2)
#Assert
assertorder==["a",2]
从代码可以看出,fixture函数order虽然先后被两个测试函数调用,但是每次被调用给出的结果都是一样的。并不会因为在测试函数test_string中,进行了order.append(b)后,就影响了order在测试函数test_int中的返回值。
同样,这些事情换成我们自己来做,那就是这样的:
deffirst_entry():
return"a"
deforder(first_entry):
return[first_entry]
deftest_string(order):
#Act
order.append("b")
#Assert
assertorder==["a","b"]
deftest_int(order):
#Act
order.append(2)
#Assert
assertorder==["a",2]
entry=first_entry()
the_list=order(first_entry=entry)
test_string(order=the_list)
entry=first_entry()
the_list=order(first_entry=entry)
test_int(order=the_list)
接下来,继续跟着官方文档解读fixtures的特点:一次请求多个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺织生产效率提升的实践试题及答案
- 我的家乡风采活动
- 四川省成都市简阳市阳安中学2022-2023学年高二下学期3月月考物理试题 含解析
- 面料生产中质量监控的有效措施研究试题及答案
- 合同协议书怎么上传
- 商品合同协议书
- 工程合作协议书合同范本
- 母婴合同协议书
- 大型车辆买卖合同协议书
- 保管合同协议书
- 财务与审计的关联与差异试题及答案
- 2024年汉中市中医医院招聘笔试真题
- 租房养宠协议合同
- 密室逃脱劳务合同协议
- 超低排放改造管理制度
- 个人车位出租协议
- 2024-2025年人教版七下语文期中复习-专题03 古诗文阅读(考点串讲)
- 近视的防控课件
- 智能调度算法设计-全面剖析
- 湖北省武汉市九校2024-2025学年下学期3月联考九年级英语试题(含答案无听力原文及音频)
- 山水画九级考题及答案
评论
0/150
提交评论