【发布时间】:2019-11-12 02:54:49
【问题描述】:
很少有方法具有 Application.Current.Properties 和 Application.Current.SavePropertiesAsync 方法。
那么我如何测试包含这两个的方法呢?在尝试为他们使用 Unity 容器后我被卡住了,但它只适用于属性而不是 SavePropertiesAsync。
我该如何实现它?
我已将其实现为:
public interface IAppProperties { IDictionary<string, object> Properties { get; set; } }
public class AppProperty:IAppProperties
{
public const string AppPropertiesName = "AppProperties";
public IDictionary<string, object> Properties { get; set; }
public AppProperty(IDictionary<string, object> appProperties)
{
Properties = appProperties;
}
}
在应用 XAML.cs 中
UnityContainer container = new UnityContainer();
if (!IsUnitTestCase)
{
container.RegisterInstance<IDictionary<string, object>>(AppProperty.AppPropertiesName, Application.Current.Properties);
}
else
{
container.RegisterInstance<IDictionary<string, object>>(AppProperty.AppPropertiesName, new Dictionary<string,object>());
}
container.RegisterType<IAppProperties,AppProperty>();
Application.Current.Resources.Add("Unity", container);
【问题讨论】:
-
您需要存根
Application对象。看看What is a Stub。如果您需要更多帮助,请使用您尝试过的测试代码更新问题
标签: c# unit-testing mvvm xamarin.forms