Android测试:对话。检查它是显示()

时间:2012-11-12 18:42:22

标签: java android unit-testing reflection dialog

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

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

我有一个测试项目,我想测试Dialog是否正在显示。我想应用.isShowing()方法。像这样......

assertTrue(dialog.isShowing());

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

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

修改

我试图通过公开对话来使用以下答案

public Dialog getDiag(){
    return dialog;
}

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

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

1 个答案:

答案 0 :(得分:5)

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

public Dialog getDiag(){
    return dialog;
}

然后做这样的事情

assertTrue(new YourClassName().getDialog().isShowing());