如何模拟对象映射器

How to mock Object Mapper

abp.io 框架 - 测试

我正在尝试设置一个 ApplicationService class。 我要测试的方法使用 'ObjectMapper.Map<classFrom, classTo>(obj)'

我已经使用 NSubstitue 作为 LazyServiceProvider,但是我无法找到正确的 Substitute 来创建 ObjectMapper。

有人做过吗?

我们解决了这个问题。

我们使用了 LazyServiceProvider 的替代品。

当 LazyServiceProvider 试图创建对象映射器时,密钥使用了非常具体的设置(请参阅 abp 代码)。

_abpProvider = Substitute.For<IAbpLazyServiceProvider>();
_abpProvider.LazyGetService<IObjectMapper>(Arg.Any<Func<IServiceProvider, object>>()).Returns(_objectMapper);

这允许我们在我们的测试方法中设置我们自己的 ObjectMapper,并在我们的 ApplicationService 中使用它。