Mar*_*elo 13 multithreading android unit-testing looper
我使用android.os.Handler类在后台执行任务.当单元测试这些时,我调用Looper.loop()
让测试线程等待后台任务线程做它的事情.后来,我调用Looper.myLooper().quit()
(也在测试线程中),允许测试线程退出loop
并恢复测试逻辑.
在我想要编写多种测试方法之前,这一切都很好.
问题是Looper似乎不是为允许在同一个线程上退出和重新启动而设计的,所以我被迫在一个测试方法中完成所有测试.
我查看了Looper的源代码,但找不到解决方法.
有没有其他方法来测试我的Hander/Looper代码?或者可能还有一些测试友好的方式来编写我的后台任务类?
我遇到了和你一样的问题。我还想为使用Handler
.
与您所做的一样,我使用 来Looper.loop()
让测试线程开始处理处理程序中的排队消息。
为了阻止它,我使用了 的实现MessageQueue.IdleHandler
来在循环器阻塞时通知我以等待下一条消息的到来。当它发生时,我调用该quit()
方法。但同样,和你一样,当我制作多个测试用例时,我遇到了问题。
我想知道您是否已经解决了这个问题并且也许愿意与我(也可能是其他人)分享:)
PS:我也想知道你怎么称呼你的Looper.myLooper().quit()
.
谢谢!
归档时间: |
|
查看次数: |
7055 次 |
最近记录: |