Sudhir Singh Khanger
@RunWith(AndroidJUnit4::class) class SomeDaoTest { private lateinit var database: AppDatabase private lateinit var someDao: SomeDao @get:Rule var instantTaskExecutorRule = InstantTaskExecutorRule() @Before fun createDb() = runBlocking { val context = InstrumentationRegistry.getInstrumentation().targetContext database = Room .inMemoryDatabaseBuilder(context, AppDatabase::class.java) // needed to run @Transaction block .setTransactionExecutor(Executors.newSingleThreadExecutor()) .build() someDao = database.someDao() someDao.insertAll(dummy1, dummy2) } @After fun closeDb() { database.close() } @Test fun testDeleteAll() = runBlocking { val someData = someDao.getData().getOrAwaitValue() someDao.deleteAll() assertEquals(0, someData.size) }
Chrimaeon
getOrAwaitValue
deleteAll
runBlocking
A modern programming language that makes developers happier.