最近,我喜欢使用FastApi写回到端服务,因为它是Python Field中最好的网络框架。它着重于提供高性能的Web API。其他方面不限制您的手和脚,您可以在Will上使用它。与烧瓶类似的三方库可以量身定制您的背部架构以满足您的需求。
应该注意的是,后端服务与关系数据库基本上是不可分割的。我以前曾经使用django,django的ORM太好了,所以从django到fastapi。必须使用Sqlalchemy快速理解并查看Liao Xuefeng官方网站Sqlamy [1]的使用迅速开始。
FastAPI并不难编写数据库的接口。遵循官方文档SQL_DATABASE [2],在5分钟内,我们可以生成数据库的静止式API。
在正常情况下,我们将使用PYTEST进行自动化单元测试,并根据数据库记录的数量进行断言。但是,每个测试都保留了。如果下次测试时不清洁它,则可能仍然可能进行测试。
如何解决?
那就是使用数据库的滚动函数在接口测试完成后更改数据库记录的接口测试。每个测试完成后都不会更改。如果您更改它,则可以执行自动测试。
为了实现这一目标,我们需要使用Pytest的固定功能。
pytest.fixture是一种用于声明该功能的装饰器。如果测试功能的参数列表包含固定装置名称,则Pytest将在运行测试功能之前检测和执行固定装置。
例如:
固定装置包含一个可选参数,用于控制灯具执行和破坏逻辑的频率:
例如,让数据库向后回滚,我们可以编写这样的固定装置:
当然,有很多固定装置,例如创建数据库引擎:
对于另一个示例,在测试之前将2个数据插入数据库中:
将这些固定装置的功能放在文件名Conftest.py中,Pytest将自动读取和执行。
接下来,使用这些固定装置编写单元测试用例。一个示例如下:下面:
其中,test_post_items,测试3个数据,然后断言数据库中的记录数为3.test_list_items具有一个参数为项目,该参数将称为上一个固定文件,请提前将2个记录插入数据库中,因此数量记录是2。
每个测试功能不会互相影响。执行完成后,数据库将回滚。测试之前的项目为空。测试后,该表仍然为空,因此可以自动执行数据库测试。
以上是该共享的所有内容。如果您想了解更多信息,请转到公共帐户:Python编程学习圈,每日干货共享
原始:https://juejin.cn/post/7100768009706274853