考虑以下类:
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 结合使用?