visual-studio-2010 - 我可以使用单元测试工具进行集成测试吗?

标签 visual-studio-2010 unit-testing testing integration-testing

我正准备创建我的第一个单元测试,或者至少我是这么想的。在本周末阅读了单元测试之后,我怀疑我实际上想要进行集成测试。我有一个来自第三方供应商的黑盒组件(例如数字秤 API),我想创建测试来测试它在我的应用程序中的使用情况。我的目标是确定该组件的新发布版本在集成到我的应用程序中时是否正常工作。

此组件的使用深埋在我的应用程序代码中,如果不进行大量重构,使用它的方法将很难进行单元测试,而我目前无法进行重构。我打算,最终。 考虑到这一事实,我计划编写自定义单元测试(即不派生 self 的类方法或属性之一),以使该第 3 方组件通过我的应用程序需要的相同操作。我确实怀疑我这样做是在规避单元测试的一个重要好处,但正如我之前所说,我现在不能停下来重构我的应用程序的这个特定部分。

我想知道我是否仍然可以编写单元测试(使用 Visual Studio)来测试这个组件,或者这是否违反最佳实践?根据我的阅读,似乎 Visual Studio 中的单元测试工具就是专门为此而设计的 - 组件的单元测试方法和属性。

我在脑子里转圈圈,我无法确定我想要的是单元测试(第 3 方组件的)还是集成测试?我对单元测试很感兴趣,因为它是一个执行测试的托管系统,但我不知道它们是否适合我正在尝试做的事情。

最佳答案

  1. 您计划围绕第 3 方组件进行测试,以证明它按照您的想法进行操作(系统的其余部分需要它进行操作)是个好主意。这样,当您升级组件时,您可以快速判断它是否以意味着您的系统需要更改的方式发生变化。这将是一个 Integration Contract Test在该组件和系统的其余部分之间。

  2. 展望 future ,您应该将第 3 方组件放在系统其他组件所依赖的接口(interface)后面。然后这些其他部分可以与第 3 方组件隔离进行测试。

我会引用 Micheal Feathers 的 Working Effectively with Legacy Code有关如何将单元测试添加到未很好地进行单元测试的代码的信息。

关于visual-studio-2010 - 我可以使用单元测试工具进行集成测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21126957/

相关文章:

c# - 'CrystalDecisions.Shared.SharedUtils' 的类型初始值设定项抛出异常

visual-studio-2010 - 如何使用VC++在宏中添加多个内联汇编指令?

ruby-on-rails - 逐行编写匹配类似配置的代码的测试有什么用?

visual-studio-2010 - 更改 Visual Studio html 文本字体颜色

java - 计算单元测试运行期间发生的 gc 次数

unit-testing - Dart - 构造函数中异常的单元测试

javascript - 如何解决与 redux 存储相关的 "Invariant Violation"错误?

Java JUnit 测试

testing - 执行手动测试,之后自动执行 - 或者从不执行?

visual-studio-2010 - 将 PostgreSQL 安装程序添加到我自己的应用程序安装程序