【发布时间】:2019-11-20 21:26:56
【问题描述】:
考虑以下类:
public class ViewModelBase
{
public IService Service { get; protected set; }
}
这个类的测试:
using var mock = AutoMock.GetLoose();
var viewModelBase = mock.Create<ViewModelBase>();
Assert.NotNull(viewModelBase.Service);
在我的普通应用程序中,我使用Autofac.Core.NonPublicProperty 的属性注入功能将IService 依赖自动装配到ViewModelBase:
containerBuilder.RegisterType(typeof(ViewModelBase)).AutoWireNonPublicProperties();
在测试中,我使用Autofac.Extras.Moq 集成包来自动模拟ViewModelBase 的依赖项。但是,据我所知,Autofac.Extras.Moq 仅支持构造函数注入。这会导致测试失败,因为 Service 属性不是由 Moq 自动装配的。
有没有什么优雅的方式可以将 AutoFac 的属性注入功能与 Moq 结合使用?
【问题讨论】: