Я написал код Kotlin и хочу написать для него модульные тесты. Но я обнаружил, что код тестового модуля, который я написал, по -прежнему не может охватить 100% покрытие филиала. Что мне сделать?
Я написал код Kotlin и хочу написать для него модульные тесты. Но я обнаружил, что код тестового модуля, который я написал, по -прежнему не может охватить 100% покрытие филиала. Что мне сделать?[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> Кроме того, если я изменю объект < /p> myRepository to myRepository=mockk (relaxed=true) [/code] , покрытие будет 0%, и код не будет выполнен. src = "https://i.sstatic.net/3k494idl.png"/> [img]https://i.sstatic.net/V6Fkwyth.png[/img]
Я написал код Kotlin и хочу написать для него модульные тесты. Но я обнаружил, что код модульного теста, который я написал, все еще не может покрыть 100% покрытие ветвей. Что мне делать?
Код Kotlin:
class MyRepository @Inject constructor(...
Я написал код Kotlin и хочу написать для него модульные тесты. Но я обнаружил, что код модульного теста, который я написал, все еще не может покрыть 100% покрытие ветвей. Что мне делать?
Код Kotlin:
class MyRepository @Inject constructor(...
Я написал код Kotlin и хочу написать для него модульные тесты. Но я обнаружил, что код модульного теста, который я написал, все еще не может покрыть 100% покрытие ветвей. Что мне делать?
код Kotlin:
class MyRepository @Inject constructor(...
Я читаю о потоке в книге Кея С. Хорстмана о Java. Ниже приведен фрагмент текста.
Если вы хотите безопасно приостановить поток, введите переменную
suspendRequested и протестируйте ее в безопасном месте ваш метод запуска - в
месте, где ваш поток не...
Я читаю о потоке в книге Кея С. Хорстмана о Java. Ниже приведен фрагмент текста.
Если вы хотите безопасно приостановить поток, введите переменную
suspendRequested и протестируйте ее в безопасном месте ваш метод запуска - в
месте, где ваш поток не...