我是 Android 上 JUnit 测试的新手,我正在测试一个函数,该函数使用 android 上下文对象来获取字符串资源并进行一些比较。如何模拟 android 上下文对象以成功测试此功能?为了测试,我使用 Mockk 测试库。
private val context = mockk<Context>()
private val contextWrapper = ApplicationContextWrapper(context)
private val objectUnderTest = AppLinkService(contextWrapper)
Run Code Online (Sandbox Code Playgroud)
我试图使用 模拟上下文mockk<Context>(),但出现以下异常
io.mockk.MockKException: no answer found for: Context(#1).getApplicationContext()
Run Code Online (Sandbox Code Playgroud) 我想在Android应用程序中实现场所自动完成功能,为此我使用的是Retrofit和RxJava.我想在用户输入内容后每2秒做一次响应.我正在尝试使用debounce运算符,但它不起作用.它立即给我结果,没有任何停顿.
mAutocompleteSearchApi.get(input, "(cities)", API_KEY)
.debounce(2, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap(prediction -> Observable.fromIterable(prediction.getPredictions()))
.subscribe(prediction -> {
Log.e(TAG, "rxAutocomplete : " + prediction.getStructuredFormatting().getMainText());
});
Run Code Online (Sandbox Code Playgroud)