CppUnit 是由 Erich Gamma 和 Kent Beck 开发的 JUnit Java 测试框架的 C++ 端口。如果您已有现有的 CppUnit 测试,则可以使用 C++test 运行它们,并利用 C++test 基础结构的扩展测试功能。
正如我们在前面的练习中创建的其他单元测试一样,可以在 C++test 中运行 CppUnit 测试。我们建议您将 CppUnit 测试保留在项目中 C++test 测试目录以上的单独目录中,并创建配置以对其进行访问。
创建“运行 CppUnit 测试(项目范围)”测试配置
- 打开【测试配置】窗口,并重复练习 5 中创建的 用户定义> 运行单元测试(项目范围) 。
- 打开执行>常规 选项卡, 测试套件文件的搜索模式(*) 设置为
${project_loc}/CppUnit/*
(指向添加的 CppUnit 目录)。 - 重命名配置运行 CppUnit 测试(项目范围)。
- 点击应用和关闭。
- 打开【质量任务】视图,然后单击面板菜单中的双 X 来清除选项卡的内容,然后再运行 CppUnit 测试配置。重复进行【覆盖率】视图。
- 选择为 CppUnit 测试编写的ATM 项目或其他范围,然后运行 运行 CppUnit 测试 (项目范围) 配置。测试应该成功运行,但是标记一个断言错误。
- 在【质量任务】视图中展开修复单元测试问题,然后双击断言失败以查看问题的根源。
CppUnit 测试期望测试调用返回非零值。 - 打开Bank.cxx 并跳转到 getAccount 函数,
该函数始终返回 NULL,但注释表明如果密码正确,则应返回userAccount 。 - 修改代码以返回
userAccount
来解决此问题。 - 选择ATM> CppUnit> BankTestCase> testGetAccount,然后重新运行测试以验证该修复程序。