我只在以前的项目中使用过 UnitTest++。但我从来没有不幸测试过可执行文件/ELF。我记得有人在 stackoverflow 上发布了一些关于 CppUnit 的内容,但已经记不得了。
我的问题
我想使用 CppUnit 来测试 .exe 和 ELF。单元测试是我认为的解决方案。
我认为会有帮助的
...我一无所知....我一生中根本没有做过任何 .exe/ELF 单元测试。我之前做过敏捷的事情,但这是一个全新的球类游戏。我会很感激有人在这方面有任何经验。
我只在以前的项目中使用过 UnitTest++。但我从来没有不幸测试过可执行文件/ELF。我记得有人在 stackoverflow 上发布了一些关于 CppUnit 的内容,但已经记不得了。
我的问题
我想使用 CppUnit 来测试 .exe 和 ELF。单元测试是我认为的解决方案。
我认为会有帮助的
...我一无所知....我一生中根本没有做过任何 .exe/ELF 单元测试。我之前做过敏捷的事情,但这是一个全新的球类游戏。我会很感激有人在这方面有任何经验。
CppUnit 是一个用于自动化单元测试的框架,而不是自动化系统测试。
系统测试正是它的名字所暗示的。从用户的角度来看,这一切都是为了将所有代码模块作为一个完整的系统一起测试。自动化系统测试是指您从测试工具中运行整个系统,为其提供特定的用户输入并测试行为和输出是否按预期运行。
单元测试就是从代码的角度测试尽可能小的代码单元,为其提供进入条件并断言退出条件得到适当满足。在最好的情况下,一个单元测试应该通过类的公共接口上的方法来执行一条路径,而不是对数据库或服务等难以提供的资源的外部依赖。单元测试是一种开发人员工具,用于测试模块是否完全按照它应该做的方式完成所有事情。这是一种非常详细的测试方法,而不是您从可执行的角度考虑的事情。
尽管如此,您打算使用 CppUnit 测试的代码仍然需要链接才能执行。我们所做的是在一个项目中编写生产代码,在单独的项目中编写测试代码。当我们构建时,首先构建生产代码项目,将生产 .CPP 文件编译成 .OBJ 文件,然后将它们链接到 PROD.DLL 或 PROD.EXE(无论项目打算生成什么)。接下来我们构建测试项目,将测试 .CPP 文件编译成 .OBJ 文件。然后,测试项目将测试 .OBJ 文件与之前立即编译的生产 .OBJ 文件链接到 TEST.EXE 中。通过这种方式,我们的测试与用于创建实际生产代码的相同 .OBJ 文件链接。然后我们执行 TEST.EXE 并确保在构建完成之前测试没有显示错误。