【问题标题】:How can I test ORMLite with Roboelectric in an Android environment?如何在 Android 环境中使用 Roboelectric 测试 ORMLite?
【发布时间】:2014-03-02 18:23:20
【问题描述】:

我正在使用 Android Studio 开发一个 Android 应用,使用 Gradle 作为构建工具。与 Android Studio 和 Robolectric 的集成是通过 android-unit-test gradle plugin 完成的。

我也在使用 ORMLite(最新版本)。

有没有一种方法可以使用 Robolectric 2.3-SNAPSHOT 测试 ORMLite DAO?

在这样的版本中,一些阴影被删除了,包括 SQLite 的(参见Robolectric dropping SQLite shadows commit)。我查看了 Robolectric 存储库中的一些单元测试,例如 this,但我需要一些有关如何设置与 ORMLite 交互的信息。

【问题讨论】:

  • 你能分享一个为ORMLite编写单元测试用例的例子

标签: android sqlite unit-testing ormlite robolectric


【解决方案1】:

这是一个我能够编译和运行的工作示例。

@Config(emulateSdk = 18) // because Robolectric does not yet support API Level 19
@RunWith(RobolectricTestRunner.class)
public class DatabaseHelperManagerTest extends BaseTest {

    private Context context;

    public void initContext() {
        context = Robolectric.application.getApplicationContext();
        assertNotNull(context);
    }

    @BeforeClass
    public static void setup(){
        // To redirect Robolectric to stdout
        System.setProperty("robolectric.logging", "stdout");
    }

    @Test
    public void getDatabaseHelperTest(){
        initContext();

        DatabaseHelperManager databaseHelperManager = new DatabaseHelperManager();
        DatabaseHelper databaseHelper = databaseHelperManager.getHelper(context);
        assertNotNull(databaseHelper);

        Log.d(DatabaseHelperManagerTest.class.getName(), "Database Path:" + context.getDatabasePath(DatabaseHelper.DATABASE_NAME));
    }
}

供参考(在 DatabaseHelperManager 类中):

public DatabaseHelper getHelper(Context context) {
    return OpenHelperManager.getHelper(context, DatabaseHelper.class);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    相关资源
    最近更新 更多