我有一个扩展SQLiteOpenHelper并执行数据库功能的类。我想用Robolectric为它编写一个测试。我相信robolectric设置得很好,因为我有很多其他测试可行。这是我到目前为止所尝试的内容:
我将数据库从我的设备复制到test / res /文件夹。
String filePath = getClass()。getResource(“/ UserData.db”)。toURI()。getPath(); SQLiteDatabase db = SQLiteDatabase.openDatabase( (new File(filePath))。getAbsolutePath(), 空值, SQLiteDatabase.OPEN_READWRITE);
这给了我一个nullpointerexception。似乎getResource()始终返回null。
接下来,我尝试直接调用将记录添加到数据库的方法
用户user =新用户(“username”,“friendlyName”,“password”,“vin”);
userDao.addUser(用户);
这也会抛出首次访问数据库的NPE。
我无法弄清楚如何修复空指针,以及我能想到的唯一其他选项来编写自定义Shadow类。有什么建议吗?
答案 0 :(得分:0)
在测试中使用
DatabaseHelper helper = new DatabaseHelper(Robolectric.application);
其中DatabaseHelper扩展了SQLiteOpenHelper,其构造函数类似于
public DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}