布赖恩·巴顿(Brian Button)的释义:
它们通常用作全局实例,为什么这么糟?因为您在代码中隐藏了应用程序的依赖关系,而不是通过接口公开它们。使某些东西全局化以避免传递它是一种代码味道。
他们违反了单一责任原则:由于他们控制自己的创作和生命周期。
它们固有地导致代码紧密耦合。在许多情况下,这使得将它们伪装成测试对象相当困难。
它们在应用程序的整个生命周期中都带有状态。测试的另一个问题是,您可能会遇到需要订购测试的情况,这对于单元测试来说是一个很大的不。为什么?因为每个单元测试都应该彼此独立。