【发布时间】:2015-12-18 12:56:34
【问题描述】:
我听说紧密耦合的代码很难进行单元测试。我不明白怎么办?谁能举例说明一下。
【问题讨论】:
-
@StefanBeike 基本上是未分层的代码,在实现类之间具有直接依赖关系,没有接口或其他机制(例如事件或消息传递)会提供松散耦合的代码。
标签: java unit-testing tightly-coupled-code
我听说紧密耦合的代码很难进行单元测试。我不明白怎么办?谁能举例说明一下。
【问题讨论】:
标签: java unit-testing tightly-coupled-code
紧密耦合意味着您使用实现而不是接口,从而在创建模拟实现和其他测试实用程序时减少选项数组。使用模拟框架(如 Android 的 Mockito)可能会有所帮助,但仍应避免,因为这是一种不好的做法。
但是,这可能是高度耦合代码中问题最少的方面。通常不鼓励这样做,因为它限制了重构和/或扩展的可能性。您应该始终在代码中保留一定程度的抽象,以便能够轻松实现新模块并更改当前实现。但不要过度,因为在接口-实现独占对上有很多的程序是非常冗余且难以调试的。
一般来说,您应该查看一些开源项目并了解这些项目是如何进行测试的(例如,对于 Android,请查看 Google I/O 应用)以及测试方法如何反映在代码中。这一切都伴随着经验,没有比分析专业人士的做法更好的学习方法了:-)
【讨论】: