【发布时间】:2009-10-10 15:23:41
【问题描述】:
考虑一个处理依赖注入的初学者。我们正在分析 NerdDinner 中的两个相关类。
DinnerRepository 来自应用程序:
FakeDinnerRepository 来自测试:
它们实现了不同的逻辑,这当然是必要的,因为这里的关键思想是实现IDinnerRepository,并提供不同的实现和私有成员。
我知道测试是针对控制器的,但我担心数据访问逻辑有两种不同的实现。考虑使用任何类型的 ORM、ADO.NET、SubSonic 或您喜欢的任何类型的数据访问的任何项目。是的,您可以设置您的假存储库以匹配真实存储库。
我担心的是,随着时间的推移,真实仓库中的实现细节会发生变化。可能是输入错误,或者 查询 中有一些其他重要的实现细节更改。这导致模型中的假货和真实回购之间的逻辑可能不匹配。担心的是真正的 repo 和 test repo 的实现不同步。
问题:
- 在这种情况下,您将如何测试模型?
- 是否适合测试模型?
- 确保您的测试跟上业务逻辑的实施是否符合纪律?
【问题讨论】:
标签: unit-testing dependency-injection inversion-of-control nerddinner