7

这是我的方法,它工作正常并显示对话框。

public void showDialog(){
    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.mylayout);
    dialog.show();
}

我有一个测试项目,我想测试对话框是否出现。我想应用 .isShowing() 方法。像这样的东西...

assertTrue(dialog.isShowing());

但我不知道如何在我的测试中访问对话框变量。

我没有使用 Robotium(这不是我的选择)。我目前正在使用 ActivityUnitTestCase 进行测试。如果需要更多信息,请随时询问。

编辑

我试图通过公开对话框来使用下面的答案

public Dialog getDiag(){
    return dialog;
}

使用这个答案:我在测试中运行 showDialog() 时遇到了一个新问题,它在命中时会中断: dialog.show();

android.view.WindowManager$BadTokenException: * 无法添加窗口 -- token null

4

1 回答 1

5

在 showDialog 函数之外声明 Dialog,然后实现一个返回此 Dialog 实例的方法。

public Dialog getDiag(){
    return dialog;
}

然后做这样的事情

assertTrue(new YourClassName().getDialog().isShowing());
于 2012-11-12T19:27:19.650 回答