gpt4 book ai didi

c# - 如何为 MvvmCross 测试设置属性注入(inject)?

转载 作者:行者123 更新时间:2023-11-30 22:00:51 25 4
gpt4 key购买 nike

我正在使用 MvvmCross 的 IoC 属性注入(inject),在我各自的 Setup.cs-classes 中初始化:

    protected override IMvxIocOptions CreateIocOptions()
{
return new MvxIocOptions {
PropertyInjectorOptions = MvxPropertyInjectorOptions.All
};
}

在我的 View 模型中,我有几个公共(public)接口(interface)属性,如下所示:

public void IDataService DataService { get; set; }

当我运行应用程序时一切正常,但单元测试失败,因为 DataServicenull

如何在使用 MvxIoCSupportingTest 时正确设置属性注入(inject)?

最佳答案

根据 Stuart 的回答让它工作,我必须修改它以避免私有(private)字段和方法:

    protected new IMvxIoCProvider Ioc { get; private set; }

protected override void ClearAll()
{
// fake set up of the IoC
MvxSingleton.ClearAllSingletons();
var iocOptions = new MvxIocOptions {
PropertyInjectorOptions = MvxPropertyInjectorOptions.All
};
Ioc = MvxSimpleIoCContainer.Initialize(iocOptions);
Ioc.RegisterSingleton(Ioc);
Ioc.RegisterSingleton<IMvxTrace>(new TestTrace());
MvxSingletonCache.Initialize();
Ioc.RegisterSingleton<IMvxSettings>(new MvxSettings());
MvxTrace.Initialize();
AdditionalSetup();
}

我还提交了一个直接覆盖 CreateIocOptions 的拉取请求,这样会更容易:https://github.com/MvvmCross/MvvmCross/pull/897/files

关于c# - 如何为 MvvmCross 测试设置属性注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28214508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com