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
在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)