[Покрытие запроса на вставку Dao] [75%]
Я пытался охватить примеры модульных тестов для классов Android Room DAO.Покрытие кода запроса 'insert' составляет всего 75%.Как добиться 100%?Проверка покрытия кода с помощью плагина Jacoco.
У меня есть класс инструментального тестирования CategoryDaoTest, который проверяет все запросы, связанные с таблицей "category".У меня есть класс CategoryDao, который включает в себя все запросы к таблице «категория» Тест проходит, но покрытие кода для вставки показывает 75%.Покрытие кода для getCategories () показывает 100% в плагине Jacoco.
@Dao
interface CategoryDao {
@Query("SELECT * FROM category")
fun getCategories(): LiveData<List<Category>>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(category: Category)
}
@RunWith(AndroidJUnit4::class)
class CategoryDaoTest {
@Rule
@JvmField var instantTaskExecutorRule = InstantTaskExecutorRule()
private lateinit var appDatabase: AppDatabase
private lateinit var categoryDao: CategoryDao
@Before
@Throws(Exception::class)
fun initDb() {
appDatabase = Room.inMemoryDatabaseBuilder(
InstrumentationRegistry.getInstrumentation().targetContext,
AppDatabase::class.java
).allowMainThreadQueries().build()
categoryDao = appDatabase.categoryDao()
}
@After
@Throws(IOException::class)
fun closeDb() {
appDatabase.close()
}
@Test
@Throws(InterruptedException::class)
fun onFetchingCategory() {
val categoryList = LiveDataTestUtil.getValue(categoryDao.getCategories())
Assert.assertTrue(categoryList.isEmpty())
}
@Test
@Throws(InterruptedException::class)
fun onInsertingACategory() {
val createdData = CategoryFactory.makeCategory()
categoryDao.insert(createdData)
val categoryList = LiveDataTestUtil.getValue(categoryDao.getCategories())
Assert.assertTrue(categoryList.isNotEmpty())
Assert.assertTrue(categoryList.size == 1)
}
}
[1]: https://i.stack.imgur.com/HvW9q.png