Slide 26
Slide 26 text
Break down of
Steps
● Create Interface
● Create Blank
Implementation
● Write Tests
https://www.rivu.dev/
fetchAndSyncArticles
@Test
fun `fetchAndSyncArticles should emit remote data`() {
/*When remote returns data, save it to DB
*and emit the same */
//Setup
val dummyData = TestDataFactory.dummyArticlesList
val localDS = FakeSaveDataStore()
val remoteDS = FakeSuccessDataStore(dummyData)
val articlesRepo = ArticlesRepositoryImpl(localDS,
remoteDS)
//When
val testObserver =
articlesRepo.fetchAndSyncArticles().test()
//Then
testObserver.assertValue(dummyData)//emitted remote
data
assertEquals(dummyData, localDS.articles)//saved it
to localDS
}