I want to test my database layer and I have caught myself in a catch-22 type of a situation.
The test case consists of two things:
There is now a solution to this issue, explained in this answer.
The fix is adding a single line to the Room in-memory database builder:
db = Room
.inMemoryDatabaseBuilder(context, AppDatabase::class.java)
.setTransactionExecutor(Executors.newSingleThreadExecutor()) // <-- this makes all the difference
.build()
With the single thread executor the tests are working as expected.