单元测试包含其他类的实例,而不仅仅是模拟

时间:2014-03-27 11:41:06

标签: java unit-testing tdd testdrivendesign

我正在从头开始新项目,我希望有高单位测试覆盖率。 让我们说我们有ClassA,ClassB和ClassC以及ClassATest,ClassBTest,ClassCTest。 在ClassBest和ClassC的ClassATest真实对象中使用是否是一个好习惯,以便所有类都在ClassATest中进行测试,或者ClassATest是否应该使用ClassB和ClassC的模拟,并且只应创建ClassA的真实实例?我没有任何麻烦来立即启动ClassB和ClassC,我也没有看到任何理由在这里使用模拟。

1 个答案:

答案 0 :(得分:3)

如果可以,我倾向于使用真正的类

我会在无法实例化这些类的场景中进行模拟,或者它们需要与数据库或其他远程系统进行交互。但是,如果您可以使用真正的依赖类而不会受到惩罚(构造或性能),那么这似乎是一种可靠的测试方法。