Могу ли я издеваться над методом SUT, пока SUT не издевается над MockK? - PullRequest
0 голосов
/ 24 февраля 2020

Таким образом, чтобы вкратце сказать, можете ли вы издеваться над методом, который находится в SUT, при этом, если не весь SUT быть насмешкой? Я пытаюсь выполнить модульное тестирование метода, который вызывает другой метод, в то время как я хочу только проверить, что метод был вызван, а не вызывать его на самом деле.

fun foo(){

if(somelogic) {bar()}

}

Теперь бар делает свое дело, чего я не хочу быть выполненным. Я просто хочу, чтобы это назвали. Могу ли я каким-то образом посмеяться над методом bar?

У Mockito есть что-то, что может сделать это

Mockito.`when`(b()).thenReturn(true)

Имеет ли mockk https://mockk.io/#returning -unit что-нибудь подобное? Это весь код

    fun fetchDrillTypes() {

        val list = ArrayList<DrillsType>()

        viewModelScope.launch(io) {
            compositeDisposable += repository.loadDrillTypes()
                .subscribeWith(object : DisposableObserver<DrillsType>() {

                    override fun onError(e: Throwable) {
                        Log.d("TAG", "error " + e?.message)
                    }

                    override fun onNext(data: DrillsType) {
                        list.add(data)
                    }

                    override fun onComplete() {
                        Log.d("TAG", "COMPLETE")
                        updateImages(list)  /// I WANT THIS TO BE CALLED BUT NOT EXECUTED
                    }
                })
        }
...