Slide 58
Slide 58 text
Step 6: Pass mock implementations in tests.
@Test
fun `correct card marked favorite`() {
whenever(mockFetcher.fetchUserCards()).thenReturn(
Observable.just(listOf(
CreditCard(id = 1, lastFour = "1234", favorite = false),
CreditCard(id = 2, lastFour = "7529", favorite = false)
))
)
whenever(mockStorage.getLastCardId()).thenReturn(2)
val presenter = CreditCardPresenter(mockView, mockFetcher, mockStorage)
presenter.refreshCards()
verify(mockView).display(cardsCaptor.capture())
val favoriteIds = cardsCaptor.firstValue.filter(CreditCard::favorite)
assertEquals(favoriteIds.size, 1)
assertEquals(favoriteIds.first().id, 2)
}