How to test Room database in Android?

Testing a Room database in Android involves using an in-memory database to ensure that your data operations are working as intended. Here's how you can effectively test your Room database.

Step-by-Step Guide to Test Room Database

  1. Set up your test dependencies in your build.gradle file.
  2. Create an in-memory Room database for tests.
  3. Implement your DAO (Data Access Object) methods.
  4. Write unit tests using JUnit.

Example Test Code

import androidx.room.Room; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.junit.Assert.*; @RunWith(AndroidJUnit4.class) @SmallTest public class UserDaoTest { private UserDatabase database; private UserDao userDao; @Before public void setUp() { database = Room.inMemoryDatabaseBuilder( ApplicationProvider.getApplicationContext(), UserDatabase.class) .allowMainThreadQueries() .build(); userDao = database.userDao(); } @After public void tearDown() { database.close(); } @Test public void insertAndGetUser() { User user = new User("John Doe"); userDao.insert(user); User retrievedUser = userDao.getUserByName("John Doe"); assertEquals(user.getName(), retrievedUser.getName()); } }

Room database testing Android Room test DAO testing in-memory database.