章节目录:
默认情况下,C++test 在生成测试用例时使用预定义的策略来初始化对象——例如,整数类型的特征值(0、1、max、min 等),使用类类型的构造函数等。通过定义工厂函数,您可以为自动生成的测试用例和使用测试用例向导创建的测试用例中使用的类型提供额外的初始化器。
- 在编辑器中打开 ATM/ATM.cxx 文件。
在源代码的末尾,输入
ffs
并按 Ctrl+空格,添加以下工厂函数。若要添加另一个工厂函数模板,输入
ff
并按 Ctrl+空格。
创建“生成单元测试”测试配置
- 选择 Parasoft> 测试配置,打开测试配置对话框。
- 选择内建> Unit Testing 并右键点击 Generate Unit Tests。
- 从快捷菜单选择复制,复制到用户自定义分类。
- 打开新的用户自定义配置中的生成> 常规选项卡。
- 为了为函数访问级别生成测试,启用 Protected 和 Private。
- 打开生成> 测试用例标签。
- 启用使用工厂函数> 工厂函数类型请勿使用其他初始化程序。
- 将新的用户自定义配置重命名为
生成单元测试 - 工厂函数
。 - 应用所做的更改并关闭测试配置窗口。
运行该测试生成配置
- 在项目树中,选择 ATM.cxx 作为测试范围。
- 选择 Parasoft> 测试执行> 用户自定义> 生成单元测试 - 工厂函数。
- 查看结果。请注意,为 ATM 类的私有方法生成了一些新的测试用例。
- 在测试用例浏览器中,打开 tests> autogenerated> TestSuite_ATM_cxx ... 并双击 test_makeDeposit_1 测试用例。
- 需注意,ATM 构造函数的 Bank* 和 BaseDisplay* 参数是使用工厂函数初始化的。