为什么紧耦合的代码很难进行单元测试?

Why tighly coupled code is hard to unit test?

我听说紧密耦合的代码很难进行单元测试。我不明白怎么办?谁能举例说明一下。

紧耦合意味着您使用实现而不是接口,从而减少了创建模拟实现和其他测试实用程序时的选项数组。使用模拟框架(如 Android 的 Mockito)可能会有所帮助,但仍应避免,因为这是一种不好的做法。

然而,这可能是高度耦合代码中问题最少的方面。通常不鼓励这样做,因为它限制了重构 and/or 扩展的可能性。您应该始终在代码中保持一定程度的抽象,以便能够轻松实现新模块和更改当前实现。但是不要过度,因为有很多接口实现独占对的程序非常冗余并且难以调试。

一般来说,您应该看看一些开源项目,看看它们是如何测试的(对于 Android,例如查看 Google I/O 应用程序)以及测试方法如何反映在代码中。这一切都来自经验,没有比分析专业人士如何做更好的学习方法了:-)