如果你查看许多遗留的测试模块,很可能它被实现为一个大的测试函数,该函数由检查和输出语句的混合组成。这有什么问题吗?是的。单一测试函数方法存在各种缺点
以上几点应该清楚地表明,最好将测试模块拆分为更小的单元。这些单元是测试用例、测试套件和夹具。
本节涵盖的主题
单元测试框架支持多种声明测试用例的方法。测试用例可以使用类似自由函数的语法实现,或者基于实际的自由函数、函数对象实现,这些函数对象可以使用或不使用参数/数据定义,或者作为模板函数针对各种类型运行。
单元测试框架提供了将多个测试用例分组到测试套件中的工具。测试套件可以是嵌套的,测试套件和测试用例的集合定义了测试树,其中叶子是测试用例。除了层次结构,单元测试框架还允许您使用逻辑分组和依赖关系来组织测试树,并为您提供控制,以便您以想要的方式(例如,从命令行)利用定义的测试树组织。
可以使用装饰器来指定测试单元属性。属性用于对测试模块执行的各个方面进行细粒度控制,例如逻辑分组、依赖关系、预期失败等。
当多个测试共享相同的设置(环境、测试数据准备等)时,准备和清理代码可以在夹具中分解。在单元测试框架中,夹具可以与测试用例、测试套件或全局测试模块关联。