migrate-room: unit tests don't compile — FakeFruittieApi uses Fruittie instead of FruittieNetworkEntity

Aperta Adatta ai principianti
#54 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
92/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
android, kotlin
Ambito
testing

Direzione di ricerca

Inizia da migrate-room/androidApp/src/test/kotlin/com/example/fruitties/kmptutorial/android/fakes/FakeFruittieApi.kt e dal relativo DefaultFruittieRepositoryTest. Controlla come FruittieTestData rappresenta il DTO di rete e l’entità Room, quindi esegui cd migrate-room && ./gradlew test. Il lavoro è completato quando gli unit test vengono compilati ed eseguiti correttamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

In the migrate-room codelab, ./gradlew test fails to compile. FakeFruittieApi builds a FruittiesResponse from a List, but FruittiesResponse.feed is a List. The test double appears to predate the split between the network DTO and the Room @Entity model, and wasn't updated.

Steps to reproduce
cd migrate-room
./gradlew test
Expected result

The unit tests compile and run.

Actual result
e: migrate-room/androidApp/src/test/kotlin/com/example/fruitties/kmptutorial/android/fakes/FakeFruittieApi.kt:23:90
Argument type mismatch: actual type is 'List<Fruittie>', but 'List<FruittieNetworkEntity>' was expected.

> Task :androidApp:compileDebugUnitTestKotlin FAILED
> Task :androidApp:compileReleaseUnitTestKotlin FAILED
Suggested fix
class FakeFruittieApi(val list: List<FruittieNetworkEntity>) : FruittieApi {
    override suspend fun getData(pageNumber: Int): FruittiesResponse = FruittiesResponse(list, 1, 1)
}

val networkFruittie = FruittieNetworkEntity(
    name = fruittie.name,
    fullName = fruittie.fullName,
    calories = fruittie.calories,
)

…and pass FruittieTestData.networkFruittie in DefaultFruittieRepositoryTest.

Lingua principale
Kotlin
Stelle
101
Fork
21
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di android/codelab-android-kmp

Tutte le issue di android/codelab-android-kmp

Issue simili

Altre issue su Kotlin

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.