【发布时间】:2018-03-04 20:20:54
【问题描述】:
我正在尝试测试我的 Xamarin 应用程序的登录,但为了使该应用程序正常工作,我必须创建一个令牌。其方法如下所示:
public string RetrieveToken()
{
if (Application.Current.Properties.ContainsKey("token"))
{
return Application.Current.Properties["token"] as string;
}
return null;
}
但是当测试运行时,我收到 NullReferenceError,因为 Application.Current.Properties.ContainsKey("token") 不能在测试中使用。
所以我的问题是是否有办法避免这种情况。
【问题讨论】:
-
将实现问题封装在抽象背后。然后可以在单独对代码进行单元测试时模拟抽象。
-
尝试将链接器行为设置为无
-
由于
Application是实例化/初始化的Xamarin.Forms应用程序的成员,因此是基于平台的,因此直接测试此类代码将属于“UI 测试”stackoverflow.com/a/42939217/4984832(我在我的回答中描述三个级别的“单元测试”)否则你需要抽象/模拟它以便对其进行经典的单元测试。
标签: c# unit-testing xamarin login xamarin.forms