Fixture 是一些函数,pytest 会在执行测试函数之前(或之后)加载运行它们。我们可以用它做一些事情,比如数据库的链接操作之类的

import pytest

@pytest.fixture()
def post_code():
return '010' def test_postcode(post_code):
assert post_code == '010'

  

执行结果

预处理和后处理

很多时候需要在测试前进行预处理(如新建数据库连接),并在测试完成进行清理(关闭数据库连接)。

当有大量重复的这类操作,最佳实践是使用固件来自动化所有预处理和后处理。

Pytest 使用 yield 关键词将固件分为两部分,yield 之前的代码属于预处理,会在测试前执行;yield 之后的代码属于后处理,将在测试完成后执行。

以下测试模拟数据库查询,使用 Fixture来模拟数据库的连接关闭:

import pytest

@pytest.fixture()
def db():
print('Connection success')
yield
print(' closed') def search_user(user_id):
d = {
'0001': 'lowen'
}
return d[user_id] def test_search(db):
assert search_user('0001') == 'lowen'

 

结果

成功前后标识前后有数据库的连接和关闭操作

最新文章

  1. Python 修改电脑DNS
  2. linux更改 DNS 的一般方式
  3. WPF学习之路(十)实例:用户注册
  4. 工作中常用的Linux命令:find命令
  5. Python自动补全
  6. 后台返回JSON关于日期的格式化
  7. HEAP CORRUPTION 错误
  8. Creating Excel File in Oracle Forms
  9. IOS开发中的几种设计模式
  10. if最简单的用法
  11. javascript推断的浏览器类型
  12. SQL字符串处理函数
  13. iOS-image图片压缩
  14. UIActionSheet,UIAlertView技术分享
  15. 获取cxgrid footer内容
  16. :nth-child(n)选择器
  17. Excel如何实现两个工作表数据的对比
  18. jQuery实现两个DropDownList联动(MVC)
  19. Unity Shader 阶段性反思与总结(一)
  20. BigDecimal 精准加减乘除

热门文章

  1. 使用async实现多个请求并发
  2. HIVE- set
  3. 利用XtraBackup实现PXC数据库的热备份
  4. Java调试排错心得
  5. cgroup与docker
  6. 夸克开发板 FaceDetectOnTft.py 测试
  7. 使用Git GUI Here进行推送时产生报错
  8. 网线接口调试,Android ADB网络调试!
  9. BUUCTF-[极客大挑战 2019]Http
  10. sqoop,hive2mysql