如何从JUnit测试中获取对我的Android应用程序的数据库和上下文的访问权限?

时间:2011-08-28 08:24:28

标签: android junit

我需要测试一些需要我的应用程序数据库和上下文的函数。

我曾经像这样实现我的测试用例:

// TestCase is in the same package with tested module
package com.ircos.andromeda.utils;
...
// database operation classes
import com.ircos.andromeda.database.MeasurementDbAdapter; 
import com.ircos.andromeda.database.SessionDbAdapter;
import com.ircos.andromeda.database.domain.Measurement;
import com.ircos.andromeda.database.domain.Session;
import com.ircos.andromeda.exceptions.ExportException;

public class SessionExportHelperTestCase extends AndroidTestCase {
...

所以,我认为通过getContext()检索的上下文应该返回我的应用程序的上下文,并且我可以像使用应用程序本身一样使用数据库。

但我失败了。我做错了什么?

protected void setUp() {
    sessionDbAdapter.open(); // exception fires here!

...

public void open() throws SQLiteException {
    if (isOpen())
        return;

    this.open(new DatabaseManagementHelper(this.ctx)); // context is null!
}

1 个答案:

答案 0 :(得分:0)

据推测,您尚未将getContext()分配给this.ctx,因此this.ctx仍为null