java - Robolectric 和 SQLite.getVersion

标签 java android unit-testing roboguice robolectric

就我而言,Robolectric SQLiteOpenHelper 中的 getVersion 始终返回 0。 因此,如果当前 DATABASE_VERSION 大于 0,则会在 DBHelper 中调用 onCreate。

有人知道如何在 Robolectric 中配置/设置数据库版本吗? 我正在使用 robolectric-1.1-jar-with-dependency.jar 和 roboguice-2.0b4.jar。 (到目前为止读+写有效...)

谢谢

最佳答案

Uhhhh 发现 Robolectric 有多酷 - 所以我必须回答我自己的问题。这是我所做的:

ShadowSQLiteDatabase.java:

@Implements(SQLiteDatabase.class)
public class ShadowSQLiteDatabase extends com.xtremelabs.robolectric.shadows.ShadowSQLiteDatabase {

    @Implementation
    public int getVersion() {
        return 10;
    }
}

InjectedTestRunner.java:

public class InjectedTestRunner extends RobolectricTestRunner {
    ...
    @Override
    protected void bindShadowClasses() {
        Robolectric.bindShadowClass(ShadowSQLiteDatabase.class);
    }
}

就是这样!

关于java - Robolectric 和 SQLite.getVersion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12266200/

相关文章:

java - 计算日期 +1 没有星期六和星期日?

java - 根据输入的秒数计算小时和分钟

android - 获取 SQLite 数据库的下一个 AUTO_INCREMENT 值

c# - 如何断言顺序不重要的 IEnumerable 参数?

java - "default"在接口(interface)中代表什么?

java - 返回一个 ArrayList 和 String asyncTask

java - Android Socket 编程 Socket 从不连接

c# - 如果我的代码是为 x86 或任何 CPU 编译的,我的代码如何在运行时检测到

java - 与 "not"一起使用的自定义 hamcrest 匹配器?

java - 如何在 Java If 语句中使用 OR