android– 如何单独测试`runOnUiThread`中包含的代码?

android– 如何单独测试`runOnUiThread`中包含的代码?,第1张

概述我有一个调用runOnUiThread的函数,如下所示funmyFunction(myObject:MyClass,view:MyView){//Dosomethingview.getActivity().runOnUiThread{myObject.myObjectFunction()}}我想使用UnitTestmyFunction来确保myObject调用myObjectFunction.但

我有一个调用runOnUiThread的函数,如下所示

fun myFunction(myObject: MyClass, vIEw: MyVIEw) {    // Do something    vIEw.getActivity().runOnUiThread {        myObject.myObjectFunction()    }}

我想使用UnitTest myFunction来确保myObject调用myObjectFunction.但鉴于它是在runOnUiThread中包装,我无法达到它.

我如何进行单元测试以确保调用runOnUiThread中的代码

@H_419_12@解决方法:

管理以找到使用ArgumentCaptor执行测试的方法.在runOnUiThread()函数中捕获Runnable,然后通过runOnUiArgCaptor.value.run()触发运行

import com.nhaarman.mockito_kotlin.argumentCaptorimport com.nhaarman.mockito_kotlin.verifyimport com.nhaarman.mockito_kotlin.wheneverimport org.junit.Beforeimport org.junit.Testimport org.mockito.Mock@Mock lateinit var activity: Activity@Mock lateinit var vIEw: MyVIEw@Mock lateinit var myObject: MyObject@Beforefun setUp() {    MockitoAnnotations.initMocks(this)}@Testfun my_test_function() {    whenever(vIEw.getActivity()).thenReturn(activity)    val runOnUiArgCaptor = argumentCaptor<Runnable>()    val myTestObject = TestObject()    myTestObject.myFunction(myObject, vIEw)    verify(activity).runOnUiThread(runOnUiArgCaptor.capture())    runOnUiArgCaptor.value.run()    verify(myObject).myObjectFunction()}
总结

以上是内存溢出为你收集整理的android – 如何单独测试`runOnUiThread`中包含的代码?全部内容,希望文章能够帮你解决android – 如何单独测试`runOnUiThread`中包含的代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存