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

Jak*_*old 7 java reflection android unit-testing dialog

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

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

我有一个测试项目,我想测试Dialog是否出现.我想应用.isShowing()方法.像这样......

assertTrue(dialog.isShowing());
Run Code Online (Sandbox Code Playgroud)

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

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

编辑

我试图通过公开Dialog来使用下面的答案

public Dialog getDiag(){
    return dialog;
}
Run Code Online (Sandbox Code Playgroud)

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

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

Rob*_*der 5

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

public Dialog getDiag(){
    return dialog;
}
Run Code Online (Sandbox Code Playgroud)

然后做这样的事情

assertTrue(new YourClassName().getDialog().isShowing());
Run Code Online (Sandbox Code Playgroud)