我正在使用Gradle作为构建工具开发Android应用Android应用。与Android Studio和Robolectric的集成通过android-unit-test gradle plugin完成。
我也在使用ORMLite(最新版本)。
有没有办法用Robolectric 2.3-SNAPSHOT测试ORMLite DAO?
在这样的版本中,一些阴影被删除,包括SQLite阴影(参见Robolectric dropping SQLite shadows commit)。我查看了Robolectric repo中的一些单元测试,如this,但我需要一些有关如何设置与ORMLite交互的信息。
答案 0 :(得分: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);
}