Android ROOM Dao класс вставки запроса блок-тест покрытия составляет 75%. Как добиться 100% покрытия кода? - PullRequest
1 голос
/ 29 апреля 2019

[Покрытие запроса на вставку 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
...