Ich habe einen Kotlin -Code geschrieben und möchte Unit -Tests dafür schreiben. Aber ich stellte fest, dass der von mir geschriebene Unit -Testcode, den ich geschrieben habe, immer noch eine 100% ige Zweigabdeckung abdecken kann. Was soll ich tun? < /P>
Kotlin Code: < /p>
Ich habe einen Kotlin -Code geschrieben und möchte Unit -Tests dafür schreiben. Aber ich stellte fest, dass der von mir geschriebene Unit -Testcode, den ich geschrieben habe, immer noch eine 100% ige Zweigabdeckung abdecken kann. Was soll ich tun? < /P> Kotlin Code: < /p> [code]class MyRepository @Inject constructor( @DefaultDispatcher private val dispatcher: CoroutineDispatcher, @ApplicationScope private val scope: CoroutineScope, val checkService:ICheckService = CheckService() ) { fun fetchData(value: Int): String { return runBlocking(dispatcher) { suspendCoroutine { continuation -> println(111) scope.launch(dispatcher) { println(222) delay(100) println(333) if(checkService.check(value)){ println(444) } continuation.resume("result") } } } } }
interface ICheckService { suspend fun check(value:Int): Boolean }
class CheckService:ICheckService{ override suspend fun check(value: Int): Boolean { // mock delay delay(300)
return value > 0 }
} < /code> UT -Code: < /p> class MyRepositoryTest4 { private lateinit var myRepository: MyRepository private val dispatcher = StandardTestDispatcher() private lateinit var scope: TestScope
withContext(Dispatchers.IO){ myRepository.fetchData(-1) } } @Test fun testMyRepository2() = scope.runTest {
withContext(Dispatchers.IO){ myRepository.fetchData(1) } } } < /code> Zusätzlich ändere ich das Objekt von < /p> myRepository to myRepository=mockk (relaxed=true) [/code] Die Abdeckung beträgt 0% und es wird kein Code ausgeführt. src = "https://i.sstatic.net/3k494idl.png"/> [img]https://i.sstatic.net/V6Fkwyth.png[/img]
Beim Online-Kurs wurde erwähnt, dass, wenn wir einen bedingten Ausdruck in Java haben, der auf der einen Seite Byte oder Short und auf der anderen Seite Final Int zurückgibt, dann if Der int-Wert...
Ich habe eine Laravel -API, die Daten in eine Tabelle einfügt, in der Zeilen eindeutig sein müssen. Die Tabelle hat eine eindeutige Einschränkung für zwei Spalten. Wenn mehrere gleichzeitige oder...
Ich habe eine Laravel -API, die Daten in eine Tabelle einfügt, in der Zeilen eindeutig sein müssen. Die Tabelle hat eine eindeutige Einschränkung für zwei Spalten. Wenn mehrere gleichzeitige oder...
Ich habe eine Laravel -API, die Daten in eine Tabelle einfügt, in der Zeilen eindeutig sein müssen. Die Tabelle hat eine eindeutige Einschränkung für zwei Spalten. Wenn mehrere gleichzeitige oder...