【发布时间】:2010-01-20 03:55:53
【问题描述】:
在我的工作中,我们使用 Moq 进行模拟,使用 Unity 进行 IOC 容器。我对此很陌生,没有很多资源可以帮助我确定我应该使用的最佳实践。
现在,我有一组存储库接口(例如:IRepository1、IRepository2...IRepository4),特定进程需要使用它们来完成其工作。
在实际代码中,我可以通过使用 IOC 容器和 RegisterType() 方法来确定所有 IRepository 对象。
我正在尝试找出能够测试需要上述 4 个存储库的方法的最佳方法。
我在想我可以只注册一个 Unity IOC 容器的新实例,并为每个传递 Mock.Object 值的模拟对象在容器上调用 RegisterInstance。我正在尝试使此注册过程可重用,因此我不必对每个单元测试一遍又一遍地做同样的事情,除非单元测试需要从存储库返回一些特定数据。这就是问题所在......在模拟存储库上设置预期值的最佳实践是什么?似乎如果我只是在 Unity 容器上调用 RegisterType,我会丢失对实际 Mock 对象的引用并且无法覆盖行为。
【问题讨论】:
标签: c# .net moq unity-container