0

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

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

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

广告。1:不好看

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

还有其他方法吗?

4

2 回答 2

1

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

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

于 2013-08-15T06:45:21.227 回答
1

如果你能做到 2),那么你应该能够像这样重新组织你的文件/文件夹/项目;

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

现在是外部api。

3) 您的旧 DLL 项目只保留公共 API 定义和实现。并取决于静态库。

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

无需两次同步项目和编译代码,通过努力,您可以测试的不仅仅是外部 api,而无需任何内部代码更改。

于 2013-08-15T06:39:51.927 回答