Flask-单元测试
敏捷开发(agile development)
scrum
结对编程
测试驱动开发(TDD): Test driven development
单元测试(unit testing)是开发者自己编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
注意单元测试是开发人员自己负责
unittest
Pytest是 python的一种unittest框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。
- 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败
- 能够支持简单的单元测试和复杂的功能测试
- 支持重复执行失败的case
- 支持运行由nose, unittest编写的测试case
- 具有很多第三方插件,并且可以自定义扩展
- 方便的和持续集成工具集成
- 支持参数化
pytest fixture用途
1.做测试前后的初始化设置,如测试数据准备,链接数据库,打开浏览器等这些操作都可以使用fixture来实现
2.测试用例的前置条件可以使用fixture实现
3.支持经典的xunit fixture ,像unittest使用的setup和teardown
4.fixture可以实现unittest不能实现的功能,比如unittest中的测试用例和测试用例之间是无法传递参数和数据的,但是fixture却可以解决这个问题
安装pytest-flask扩展
pip install pytest-flask
Dev - test - demo - product
为了测试时方便传入不同的配置参数 (如使用不同的数据库和其他参数),我们需要使用工厂模式创建flask的app对象,改造代码如下
1、创建school/settings.py文件,统一放置项目配置参数
SECRET_KEY = 'q234asdfad@#$AdfS*UNFs'
# 设置数据库连接字符串
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:Vff123456@127.0.0.1/mouse?charset=UTF8MB4'
# 不跟踪修改,不设置会有警告
SQLALCHEMY_TRACK_MODIFICATIONS = False
# 每页条数
COUNT_PER_PAGE = 10
2、修改applica