class: center, middle, inverse # Junit - UI consola ### Scanner i println --- # Test de scanner/println - Usar amb precaució - No substitueixen els testos de les parts - Permeten fer un test del sistema complert - Usarem una llibreria externa --- # Gradle - Afegeix la dependència al Gradle ``` testImplementation("com.github.stefanbirkner:system-lambda:1.2.1") ``` --- # Modificar el Main Si volem fer el test del main l'hem de modificar per a que fagi només a una crida a una nova funció: ``` fun main() { campSiteOrganizerMain() } fun campSiteOrganizerMain() { val scanner = Scanner(System.`in`) ... } ``` --- # Test ``` @Test fun mainTest(){ val input = """ENTRA 2 Maria ENTRA 5 Mar MARXA Maria END""" val desired = """parcel·les: 1 persones: 2 parcel·les: 2 persones: 7 parcel·les: 1 persones: 5 """ withTextFromSystemIn(input).execute{ val output = tapSystemOutNormalized{ campSiteOrganizerMain() } assertEquals(desired, output) } } } ```