目前,我正在使用SQLite.Net-PCL 3.1.1开发Xamarin MvvmCross应用程序的单元测试.单元测试项目是一个普通的.NET项目.
所以现在我在嘲笑MvxSqliteConnectionFactoryBase
public class MockMvxSqliteConnectionFactoryBase : MvxSqliteConnectionFactoryBase
{
#region implemented abstract members of MvxSqliteConnectionFactoryBase
public override string GetPlattformDatabasePath(string databaseName)
{
return "Data Source=:memory:";
}
public override ISQLitePlatform GetCurrentPlatform()
{
return new SQLite.Net.Platform.Generic.SQLitePlatformGeneric();
}
public override ISQLitePlatform GetCurrentPlatform(string key)
{
return new SQLite.Net.Platform.Generic.SQLitePlatformGeneric();
}
#endregion
}
但是数据库不是在内存中创建的,而是在项目的bin文件夹中创建的.
我试图像这个example一样初始化SQLiteConnection,但是没有一个构造函数只接受一个字符串.
最佳答案 按照@CL的提示.给了我改变方法GetPlattformDatabasePath:
public override string GetPlattformDatabasePath(string databaseName)
{
return ":memory:";
}
现在我没有在bin文件夹中看到要创建的内容,并且在每次单元测试运行后都不需要删除数据,因此数据库必须在内存中.