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