单元测试以进行改造

时间:2020-08-26 11:37:39

标签: android unit-testing kotlin

我正在学习如何使用单元测试。我有一个Retrofit调用,我想测试它是否返回非空列表,或者我也可以将生成的URL与我的URL进行比较以进行测试。不要紧。但是当我运行它时它不起作用,它永远不会进入“ handleResponse”功能。在我的活动中,效果很好。

@RunWith(AndroidJUnit4::class)
class ApiTest {
    @Test
    fun apiConnection() {

        val compositeDisposable = CompositeDisposable()
        compositeDisposable.add(
            ApiClient.getClient.getQuestions(Params.getParamsSearch())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe(this::handleResponse)
        )
    }

    private fun handleResponse(objectsQueryResult: ObjectsQueryResult) {
        assertTrue(objectsQueryResult.items.isEmpty());
        assertEquals(objectsQueryResult.items, "");

    }
}

1 个答案:

答案 0 :(得分:1)

您可以为此使用blockingSubscribe()函数,例如:

  Observable.fromCallable {
                    "Some data"
                }
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .blockingSubscribe(this::handleResponse)