繁体   English   中英

c ++测试herimitic库

[英]c++ testing herimitic library

我决定为我的库添加测试。 问题是大多数(所有?)测试框架都使用相同的方法:构建一个可执行文件,其中包含要测试的代码,测试和框架。

但是如果我有一个很重的库(里面有很多代码)但只有一些公共函数/类呢? 在这种情况下,我无法测试它,直到:

  1. 我从库中导出所有符号
  2. 我构建了包含所有库源的可执行文件

广告。 1:这不好

广告。 2:当我使用visual studio时,它需要我将库项目与'test'可执行项目(添加/删除文件等)同步。 所以它对我来说也不好看。

还有其他方法吗?

如果你能做2)所以你应该能够重新组织你的文件/文件夹/项目;

1)包含所有内部函数和对象的静态库项目2)使用任何框架的测试项目(每个都有很多pro&con的框架,如果你是初学者,我的建议是选择集成解决方案或简单框架)。 该测试项目必须在静态库中DEPEND(在解决方案资源管理器菜单中添加依赖性)。 因此,您可以在内部实现上添加测试

现在是外部api。

3)您的旧DLL项目仅保留公共API定义和实现。 和静态库的DEPEND。

4)为您的公共API添加一个测试项目

无需同步项目和编译代码两次,并且只需外部api就可以测试更多,而无需更改内部代码。

通常,测试驱动编程适用于许多小型“单元”。 拥有一些膨胀的“单位”使得测试阶段无法忍受!

我看到唯一可行的解​​决方案是隔离代码的特定部分,然后使用调试器进入它们。 拥有许多private函数通常会导致上述问题,并且由于您无法在单元测试期间直接访问它们,因此您应该考虑将调试器用于非显而易见的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM