Ich habe eine Android-Anwendung in Visual Studio mit Xamarin. Ich habe einen Emulator im Visual Studio installiert. Die App benutzt txt-Dateien, die ich zuvor auf dem Emulator erstellt habe (File.WriteAllText). Das Problem ist, dass ich Unit-Tests nicht ausführen kann. DependencyService.Get löst einen Fehler aus.Fehler: Sie müssen Xamarin.Forms.Init() aufrufen - Visual Studio Xamarin, Komponententest Fehler
Ich bin nicht sicher, wo ich falsch liege, und was ich hier tun sollte.
Es gibt eine IPersistence-Klasse, die das Laden von Dateimethode gibt.
public interface IPersistence
{
Task<Player[,]> Load(int x);
}
ich setzte es für Android in einer anderen Klasse:
public class AndroidDataAccess : IPersistence
{
public async Task<Player[,]> Load(int x)
{
/*...*/
}
}
Unit-Test-Code:
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);
}
Was testen Sie? Zeig uns deinen Test. – EpicSam