【发布时间】:2014-12-08 20:25:30
【问题描述】:
我有一个扩展 SQLiteOpenHelper 并执行数据库功能的类。我想用 Robolectric 为它写一个测试。我相信 robolectric 设置得很好,因为我还有很多其他的测试可以工作。到目前为止,这是我尝试过的:
-
我将数据库从我的设备复制到了 test/res/ 文件夹。
String filePath = getClass().getResource("/UserData.db").toURI().getPath(); SQLiteDatabase db = SQLiteDatabase.openDatabase( (新文件(filePath)).getAbsolutePath(), 空值, SQLiteDatabase.OPEN_READWRITE);
这给了我一个空指针异常。看来 getResource() 总是返回 null。
-
接下来,我尝试直接调用向数据库添加记录的方法
用户 user = new User("username", "friendlyName", "password", "vin");
userDao.addUser(user);
这也会在首次访问数据库的位置引发 NPE。
我不知道如何修复空指针,我能想到的唯一其他选择是编写自定义 Shadow 类。有什么建议吗?
【问题讨论】:
-
请同时添加您遇到的异常的完整跟踪
-
原来这是我的代码中的一个问题。我有单元测试是件好事:P 无论如何,谢谢。
标签: android unit-testing android-sqlite robolectric