android - Robolectric Run Handler 帖子

标签 android handler robolectric

我在使用 Robolectric 测试 Handler 代码时遇到问题。例如:

public class Client {
  private Handler mMainThreadHandler;

  public interface Callback{
    void ok();
  }

  public Client() {
    mMainThreadHandler = new Handler(Looper.getMainLooper());
  }

  public void doSomeStuff(Callback callback){
    //doing...
    mMainThreadHandler.post(new Runnable(){
      @Override public void run() {
        callback.ok();
      }
    });
  }
}

如何立即运行 Runnable 中的代码?它不会在我的测试执行完成之前运行。

最佳答案

对于 Robolectric 3.0 版,您应该使用: org.robolectric.Robolectric.flushForegroundThreadScheduler
或者
org.robolectric.shadows.ShadowLooper.runUiThreadTasks
org.robolectric.shadows.ShadowLooper.runUiThreadTasksIncludingDelayedTasks

引用:2.4 to 3.0 Upgrade Guide

关于android - Robolectric Run Handler 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18956117/

相关文章:

android - 如何使用android.webkit.PluginStub

c# - 在处理程序中将 Json 反序列化为 Object

android - Robolectric 和 Google Analytics 测试错误

android - 如何在不破坏 Robolectric 的情况下添加 WidgetProvider

android - 如何在Android Kotlin中假装单击tabLayout?

java - Android Fragments是View还是ViewGroup

mysql - 在游标循环内调用存储过程,而不触发继续处理程序

java - android Java - 当 Activity 重新启动时,Textview 不附加文本

android - 在 Robolectric 中找不到 @Config 常量参数

android - 如果我使用 Android 4.2.2 API 17 开发我的应用程序,它可以在最旧版本中运行吗?