我正在使用AutoMapper的静态版本。我有一些Profile类,在构造函数中有一些依赖项,而这些依赖项又有自己的依赖项。所以我的问题是,因为我们设置了一次AutoMapper,我如何模拟这些依赖项,我应该首先模拟这些,因为我将使用它来映射实际对象。
使用静态时很难模拟,特别是如果你并行运行测试。因此,您可以做的最好的事情是不使用AutoMapper的静态版本。我们使用我们注入的AutoMapper接口,这意味着我们总是可以模拟automapper本身。
至于你是否想要嘲笑它,想象一下你将在5种不同的方法中使用相同的映射。现在你必须编写单元测试,以便验证映射是否正确5次。相反,您可以验证已调用映射并编写单元测试以直接针对automapper进行映射。
您可以自行决定是否需要进行更改才能实现这一目标。如果你从头开始做一个新的设计我可以建议像我描述的那样。多写一点,但让您轻松进行单元测试并纠正松耦合。