【发布时间】:2009-10-09 11:46:20
【问题描述】:
我有一个关于如何测试两个相互依赖但不能一起进行单元测试的类的问题。我无法创建足够短的代码示例,因此我将尝试用假设的类来解释它。抱歉,如果这太混乱了,但我仍在尝试提出一个简洁的例子。
在本例中,我们关注 4 个不同的类:ObjectCreator、ObjectUser1、ObjectUser2 和 Object。在 ObjectUser1 和 ObjectUser2 的单元测试中,每个都显式地构造要使用的 Object 实例。 ObjectCreator 还具有单元测试以确保 Object 实例的“正确”构造。所有单元测试都成功通过。现在,在 ObjectUser1 中发现了一个未在单元测试中公开的错误。此错误是由于 ObjectCreator 创建对象的方式与 ObjectUser1 使用它的方式之间的不兼容造成的。 ObjectUser2 中不存在此错误。该错误的修复是更改 ObjectCreator 构造对象的方式。我面临的问题是,当我更改 ObjectCreator 时,所有单元测试都再次通过,但我知道新更改已经破坏了 ObjectUser2(单元测试通过了 ObjectUser2,因为 Object 是为单元测试构建的方式)。假设出于复杂性原因,我不想在 ObjectUser1 和 ObjectUser2 的单元测试中使用 ObjectCreator。
这是单元测试中的常见问题吗?如果不能一起进行单元测试,那么测试依赖项的最佳方法是什么?对此的任何帮助将不胜感激。
【问题讨论】:
标签: unit-testing testing