【发布时间】:2011-01-17 01:22:53
【问题描述】:
假设你有一个类 Foo,它的私有成员类型为 Bar。您不希望用户知道 Foo 的实现包含一个 Bar,并且您不希望用户能够创建自己的 Bar 并通过 Foo 的构造函数、任何其他方法或配置文件传递它。
编辑:Bar 也存在问题,因为它会访问测试环境无法控制的资源,例如特殊数据库、网络连接或其他进程。
当您还希望能够对 Foo 进行单元测试时,您会怎么做?依赖注入仍然可能吗?这是否意味着 Bar 和 Foo 过于紧密耦合(即使依赖是一种方式)并且这种情况永远不可接受?
【问题讨论】:
标签: unit-testing dependency-injection information-hiding