2014-03-02 29 views
0

我正在用Android Studio开发一个Android应用程序,使用Gradle作为构建工具。与Android Studio和Robolectric的集成通过android-unit-test gradle plugin完成。如何在Android环境下使用Roboelectric测试ORMLite?

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

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

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

回答

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); 
}