我为会议室数据库创建了dagger2模块,如下所示:
@Module
public class RoomModule {
@AppScope
@Provides
StateDataBase dbEngineerProvider(Context context){
return Room.databaseBuilder(context, StateDataBase.class, "State.db").build();
}
@AppScope
@Provides
UserDao getUserDao(StateDataBase db) {
return db.getUserDao();
}
}
我在应用程序类中初始化了匕首:
@Override
public void onCreate() {
super.onCreate();
Timber.plant(new Timber.DebugTree());
component = DaggerAppComponent.builder()
.networkModule(new NetworkModule(this))
.build();
}
public AppComponent getAppComponent() {
return component;
}
}
我想知道如何通过匕首从我的房间数据库中进行真正的测试而不是模拟测试吗?
我想在我的数据库中插入数据,在我的应用程序中,我使用这些数据!!! 例如,在测试中,我输入用户名和密码,然后在运行应用程序时使用此数据登录应用程序!有可能吗?
答案 0 :(得分:0)
@Test
fun testRoomDatabase() {
val dao = Room.databaseBuilder(context!!, Database::class.java, "Database.db").build().dao()
val alertList = ArrayList<Alert>()
val alert = Alert()
alert.alertId = 22603
alert.alertType = 3
alert.geoFence = ""
val alert1 = Alert()
alert1.alertId = 12603
alert1.alertType = 10
alert1.geoFence = ""
alertList.add(alert)
alertList.add(alert1)
Assert.assertNotNull(alertList)
val ids = dao.insertSelectedAlertsToDatabase(alertList)
Assert.assertEquals(2, ids.size)
Assert.assertFalse(1 == ids.size)
// fetch all alerts from database
val alerts = dao.fetchAllAlerts()/*.test().onComplete()*/
Assert.assertNotNull(alerts)
}
我希望您已有数据库。