Ninject Moqing内核(重置做什么?)
我有一个接口,我正在使用几个不同的具体类。我希望有这样的事情Ninject Moqing内核(重置做什么?),ninject,moq,Ninject,Moq,我有一个接口,我正在使用几个不同的具体类。我希望有这样的事情 _kernel.GetMock<ISerializeToFile>().Named("MyRegisteredName") .Setup(x => x.Read<ObservableCollection<PointCtTestDataInput>>( It.IsAny<string>())); \u kernel.GetMock().Named(“MyRe
_kernel.GetMock<ISerializeToFile>().Named("MyRegisteredName")
.Setup(x => x.Read<ObservableCollection<PointCtTestDataInput>>(
It.IsAny<string>()));
\u kernel.GetMock().Named(“MyRegisteredName”)
.设置(x=>x.读取(
It.IsAny());
我正在从事的项目使用了服务定位器模式——我一直不太喜欢的反模式
起初我试着
[ClassInitialize]
public static void ClassInitialize(TestContext testContext)
{
_kernel = new MoqMockingKernel();
}
[TestInitialize]
public void TestInitialize()
{
_kernel.Reset();
ServiceLocator.SetLocatorProvider(
() => new NinjectServiceLocator(_kernel));
_kernel.Bind<ISerializeToFile>().ToMock()
.InSingletonScope().Named("ObjectToFile");
_kernel.GetMock<ISerializeToFile>()
.Setup(x => x.Read<ObservableCollection<PointCtTestDataInput>>(
It.IsAny<string>()));
_kernel.GetMock<ISerializeToFile>()
.Setup(x => x.Save<ObservableCollection<PointCtTestDataInput>>(
It.IsAny<ObservableCollection<PointCtTestDataInput>>(),
It.IsAny<string>()));
}
[分类初始化]
公共静态void ClassInitialize(TestContext TestContext)
{
_kernel=新的MoqMockingKernel();
}
[测试初始化]
public void TestInitialize()
{
_Reset();
ServiceLocator.SetLocatorProvider(
()=>新的NinjectServiceLocator(_内核));
_kernel.Bind().ToMock()
.InSingletonScope().Named(“ObjectToFile”);
_kernel.GetMock()
.设置(x=>x.读取(
It.IsAny());
_kernel.GetMock()
.Setup(x=>x.Save(
It.IsAny(),
It.IsAny());
}
我得到了一个标准的Ninject错误,指出有多个匹配的绑定可用。因此,我移动了
\u kernel=new MoqMockingKernel()代码>进入测试初始化,然后错误消失。。。也许我猜错了_kernel.Reset()的作用了?Reset会从缓存中删除任何实例。它不会删除现有绑定。因此,第二个测试将有两次ISerializeToFile。重置从缓存中删除任何实例。它不会删除现有绑定。因此,第二个测试将有两次ISerializeToFile