单元测试 Unittest Flask 主要结构:
所有的 Flask 应用程序测试都将遵循相同的格式:
- 为应用程序(或应用程序的一部分,对于较大的应用程序) 定义测试用例类 。
- 定义并实现
setUp
功能。 它将在每次测试之前执行,您应该在此处初始化应用程序和测试客户端,以及您的测试需要的任何其他content。Flask 库为应用程序提供了一个测试客户端,访问方式如下所示。 - 定义
tearDown
方法 ,在每次测试后执行。只要setUp
执行成功,它就会运行,不管测试是否成功。 - 定义你的测试。
"test__"
所有的都应该以一个关于测试目的的文档字符串 开头 并包括在内。在定义测试时,您需要:- 通过让客户端发出请求来获取响应
- 用于
self.assertEqual
检查状态代码和所有其他相关操作。
python test_file_name.py
命令行 运行 来 运行测试套件 。
代码结构:
class AppNameTestCase(unittest.TestCase):
"""This class represents the ___ test case"""
def setUp(self):
"""Executed before each test. Define test variables and initialize app."""
self.client = app.test_client
pass
def tearDown(self):
"""Executed after reach test"""
pass
def test_given_behavior(self):
"""Test _____________ """
res = self.client().get('/')
self.assertEqual(res.status_code, 200)
# 使测试方便地执行
if __name__ == "__main__":
unittest.main()
TDD
测试驱动开发 (或 TDD )是一种在生产中非常常用的软件开发范例。它基于一个短而快速的开发周期,其中测试在可执行代码之前编写并不断迭代。
- 为特定的应用程序行为编写测试。
- 运行测试并观察它们是否失败。
- 编写代码来执行所需的行为。
- 测试代码并根据需要重写以通过测试
- 重构你的代码。
- 重复 - 编写下一个测试。
通常在结对编程时,一个人编写测试,另一个人编写可执行代码,之后切换。此过程有助于检查有关行为的假设并确保捕获所有预期行为。