C# 错误:必须调用Xamarin.Forms.Init()-Visual Studio Xamarin,单元测试错误

C# 错误:必须调用Xamarin.Forms.Init()-Visual Studio Xamarin,单元测试错误,c#,android,visual-studio-2012,xamarin.ios,C#,Android,Visual Studio 2012,Xamarin.ios,我在VisualStudio中使用Xamarin制作了一个android应用程序。我在VisualStudio中安装了一个模拟器。applaction使用txt文件,这是我之前在emulator上创建的(File.WriteAllText)。问题是我不能运行单元测试。DependencyService.Get抛出错误 Test Result Message: Unable to create instance of class (...). Error: System.InvalidOpera

我在VisualStudio中使用Xamarin制作了一个android应用程序。我在VisualStudio中安装了一个模拟器。applaction使用txt文件,这是我之前在emulator上创建的(File.WriteAllText)。问题是我不能运行单元测试。DependencyService.Get抛出错误

Test 
Result Message: Unable to create instance of class (...). Error: System.InvalidOperationException: You MUST call Xamarin.Forms.Init(); prior to using it..
我不知道我错在哪里,也不知道我应该在这里做什么

有一个IPersistence类提供了从文件加载的方法

public interface IPersistence
    {
        Task<Player[,]> Load(int x);
    }
公共接口IPersistence
{
任务负载(intx);
}
我在另一个类中为android实现了它:

 public class AndroidDataAccess : IPersistence
 {
        public async Task<Player[,]> Load(int x)
        {
               /*...*/
        }
 }
公共类AndroidDataAccess:IPersistence
{
公共异步任务加载(intx)
{
/*...*/
}
}
单元测试代码:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Model;
using Persistence;
using Xamarin.Forms;
namespace UnitTestProject1
{
    [TestClass]
    public class Test1
    {
        private Model _model;
        private IPersistence _dataAccess = DependencyService.Get<IPersistence>(); //It throws an error.
        [TestInitialize]
        public void Initialize()
        {

            _model = new Model(_dataAccess);
            _model.GameWon += new EventHandler<GameWonEventArgs>(Model_GameWon);
            _model.GameOver += new EventHandler(Model_GameOver);
            _model.FieldChanged += new EventHandler<FieldChangedEventArgs>(Model_FieldChanged);
            _model.GuardChanged += new EventHandler<GuardChangedEventArgs>(Model_GuardChanged);
        }
        [TestMethod]
        public void BasicTest10()
        {
        _model.NewGame(10);
        Assert.AreEqual(4, _model.S);
        }
使用系统;
使用Microsoft.VisualStudio.TestTools.UnitTesting;
使用模型;
使用持久性;
使用Xamarin.Forms;
命名空间UnitTestProject1
{
[测试类]
公共类Test1
{
私有模型(u模型),;
私有IPersistence _dataAccess=DependencyService.Get();//它抛出一个错误。
[测试初始化]
公共无效初始化()
{
_模型=新模型(_dataAccess);
_model.GameWon+=新事件处理程序(model_GameWon);
_model.GameOver+=新事件处理程序(model_GameOver);
_model.FieldChanged+=新事件处理程序(model_FieldChanged);
_model.GuardChanged+=新事件处理程序(model\u GuardChanged);
}
[测试方法]
公共空间基本测试10()
{
_新游戏模型(10);
AreEqual(4,_model.S);
}

DependencyService
需要一个
表单
上下文来操作。这通常是在为Android创建
MainActivity
或为iOS创建
AppDelegate
时创建的。对于您的测试,我建议为每个平台创建一个测试夹具,然后创建一个手动初始化
dataA的方法基于平台的访问

[TestFixture(Platform.Android)]
[TestFixture(Platform.iOS)]
public class Test1 {
   ...
    ...
    private IPersistence InitialisePersistance(Platform platform) { ... }
}

你在测试什么?让我们看看你的测试。