我正在使用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(或有替代方法?)和依赖注入来设置此测试的想法?
完美,非常感谢! –