【发布时间】:2015-02-23 21:49:00
【问题描述】:
我真的不知道如何简明扼要地解释我的情况,所以我必须描述一下场景。
我有一个进程 A,它接受输入 X 并产生输出 Y。我有一个单独的进程 B,它接受输入 Y(来自进程 A)并产生输出 Z。
流程 A 和 B 都很复杂,因此可以从单元测试中受益。进程 A 和 B 也可能会发生变化,因此“中间”格式 Y 也会发生变化。
如果我只是对具有输入 Y 的 B 进行单元测试,如果流程 A 发生变化,我如何确保它们保持相关和正确?例如,进程 A 将输入“foo”转换为“bar”。 B 的单元测试将“bar”作为输入并将其转换为“溢出”。如果进程 A 发生变化,现在将“foo”变成“fish”,那么我对 B 的单元测试仍然会通过,但它们的价值值得怀疑,因为它们不再测试预期的输入。
解决这种情况的最佳做法是什么?这种情况有名字吗?
另外(为了增加复杂性),进程 B 是 Java,而进程 A 是 Visual Basic。
我知道“超越”单元测试并执行集成测试将是确保输入 X 可以成为输出 Z 的一种方式,但由于我们对流程 B 进行了大量测试,我们如何确保这些测试保持相关性? (而且当一个是 Visual Basic 另一个是 Java 时也不容易)。
【问题讨论】:
标签: java unit-testing integration-testing