在android的单元测试中,因为涉及到了其他函数的层层调用,涉及到多线程,结果出现以下问题。

1)在主线程之外的其他线程中设置断点,但是毫无效果,因为转化为利用日志log.v()的方式进行调试。

2)结果发现,在多个地方log.v的时候,会出现每次打印的日志信息条数不同的情况,而且不能将所有的日志信息打印完全。

3)考虑可能是一旦主线程运行结束,单元测试便完结所导致,因此主线程之外的线程中的有些log.v来不及打印,在单元测试的主线程中令线程休眠一段时间Thread.sleep(1000),发现上面一个问题得到解决。

4)另一方面,测试的模块中具有利用handler进行消息传递的机制,发现即使令主线程休眠,handler对象的回调函数handlemessage依旧得不到执行。

总结,由此可见,android单元测试最好还是用来处理功能单一的函数,当涉及测试某个模块的整体功能时候,因为复杂的函数调用,尤其是包含消息传递机制或者多线程的时候,最好还是编写一个样例来测试整个流程。

更多相关文章

  1. android窗体加载过程剖析之消息处理的注册机制
  2. Android(安卓)面试题002 android的Handler机制
  3. 《Android开发艺术探索》读书笔记----第二章:Android(安卓)IPC 简
  4. Android(安卓)App开发之ANR异常的原因分析及处理总结
  5. Android面试整理
  6. Android游戏的基础:物体运动效果
  7. android handler,looper,messageQueue重点记录
  8. Android中实现并发性联网和数据访问
  9. Android(安卓)并发二三事之Java线程池

随机推荐

  1. Android数据库升级
  2. Android(安卓)多线程编程:IntentService &
  3. 7款Android开发者常用的Android(安卓)UI
  4. Android应用程序消息处理机制(Looper、Han
  5. Android木马分析简介
  6. 关于入门Android(安卓)studio的那些问题
  7. Android入门学习四:Android系统框架
  8. android复习题
  9. Android技术架构演进与未来
  10. Android的Testing和Instrumentation