大佬教程收集整理的这篇文章主要介绍了android – 包含生产代码中的Toast的单元测试失败,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@Rule public ActivityTestRule<LoginTestActivity> mLoginActivityTestRule = new ActivityTestRule<>(LoginTestActivity.class); @Test public void loginWithTwitter() throws Exception { mLoginActivityTestRule.getActivity().performLogin(); }
当我正常运行应用程序时,上面的performLogin函数工作正常,但是当我在单元测试中运行它时,我得到了这个可怕的异常:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Toast.makeText(getApplicationContext(),“Login success!”,Toast.LENGTH_LONG).show();
当我将其作为单元测试运行时,为什么会失败?我猜一个ActivityTestRule以某种方式在它自己的线程上运行,并且它不被Android视为主线程.我该如何解决?
我尝试传入getinstrumentation().getTargetContext()作为Toast的上下文但发生了同样的错误.我应该在调用中包装每个toast显示以明确地在UI线程上运行吗?
以上是大佬教程为你收集整理的android – 包含生产代码中的Toast的单元测试失败全部内容,希望文章能够帮你解决android – 包含生产代码中的Toast的单元测试失败所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。