c++ - 如何正确进行具有大量依赖项的单元测试

标签 c++ c unit-testing

所以我正在向旧项目添加一些新功能。我能够对一些类进行单元测试,而无需依赖遗留代码中的任何功能。然而,我已经到了这样的地步:功能的下一阶段是如此依赖于遗留代码,以至于我基本上必须从项目(或至少是大部分设置)运行主程序才能能够对我最新的类(class)进行单元测试。在尝试进行单元测试时,是否有某种方法可以处理荒谬的依赖关系?

最佳答案

However I've gotten to a point where the next phase in functionality is just so dependent on the legacy code that it seems like I will basically have to run the main from the project( or at least most of the set up) in order to be able to Unit test my newest class.

我也遇到过这样的问题。要求您编写一个包含 4 个方法的小类。

但是,不幸的是,您的代码需要创建遗留类的对象。因此,您需要构建遗留代码库,将您的代码与它们链接,运行 3 打进程,启动数据库,在数据库中填充示例数据,设置进程配置,安排事件启动......等等。/p>

您可以通过模仿您的输入来避免一些痛苦(我假设您已经这样做了)。

您还可以删除遗留类。如果您没有控制遗留类的源代码,您甚至可以有选择地 stub 遗留类的方法(通过将 stub 库放在编译器的命令行上,位于实际的遗留库之前)。

有不同的技巧来处理单元测试中出现的不同类型的问题。如果您有一个特定的问题,您可以将其添加到您的问题中,以便人们可以更好地帮助您。

关于c++ - 如何正确进行具有大量依赖项的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40295643/

相关文章:

c++ - 重载赋值运算符的类的深拷贝

c++ - 优先队列 - 二叉堆

编译 sendmmsg 得到对 `sendmmsg' 的 undefined reference ?

c - 不明白这个语法

unit-testing - Mockito 可以检测模拟使用和字段分配吗?

c++ - C++ 中的 std::regex 表达式

c++ - 向链表后面添加元素时出错

java - 如何将数据库连接工厂服务注入(inject) Jersey 应用程序

c - 我在 visual studio 上写了一个 C 程序。但是我的程序没有运行,也没有返回任何错误。有人可以看一下吗?

perl - 如何使用 Test::MockObject 模拟 IO::Socket::INET