我正在使用MVVMCross構建一個Xamarin.Forms項目。爲了測試我使用的平臺特定代碼Nunit.Xamarin,它具有一個在設備上運行測試的應用程序。使用MVVMCross SQLite Plugin構建的單元測試代碼
這個測試程序是一個形式的應用程序,但不使用MVVMCross,我已經沒有任何運氣將它設置爲使用MVVMCross由於應用程序類加載類型的應用程序NUnit.Runner.App事實而MVVMCross需要MvxFormsApp。
我想測試這個類從SQLite數據庫的保存和讀取用戶數據:
public class DataStorageService : IDataStorageService
{
private readonly SQLiteConnection _connection;
public User UserData
{
get { return _connection.Table<User>().FirstOrDefault(); }
set { _connection.InsertOrReplace(value); }
}
public DataStorageService(IMvxSqliteConnectionFactory factory)
{
_connection = factory.GetConnection(DataStorageConstants.LocalDatabaseName);
_connection.CreateTable<User>();
}
}
我想實際測試,它保存和從本地SQLite數據庫負載,所以我不希望嘲笑IMvxSqliteConnectionFactory。我嘗試將MVVMCross和SQLite插件安裝到項目中,然後傳遞連接工廠的Android實現,但反覆拋出了typeloadexception。
任何有關如何使用MVVMCross(或有替代方法?)和依賴注入來設置此測試的想法?
完美,非常感謝! –