我的课程中有一个方法,我想测试哪个显示警告对话框。 当我从测试类调用此方法时,它会被执行但是对话框没有显示? 当我调用一个显示一些toast或其他弹出对话框的方法时,会发生同样的情况 我的测试类扩展了ActivityInstrumentationTestCase2。
public void showSaveName(String name){
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_menu_save)
.setTitle(R.string.savePopupLabel)
.setMessage(R.string.savePopupMessage)
.setPositiveButton(R.string.save_yes, new alter(name))
.setNegativeButton(R.string.save_no, null)
.show();
}
当我从我的测试类中调用它时
getActivity().showSaveName(name);
对话框未显示? 任何人都可以帮我弄清楚它为什么会发生?或者如果我做错了什么?
答案 0 :(得分:0)
这是正常的。 您的测试类不是要在设备上显示任何内容。您应该以编程方式确保对话框出现。
在测试类中,一旦显示对话框,请保留Dialg框的实例,然后执行
assertTrue(yourDialogInstance.isShown());
如果您的对话框没有出现,那么您的测试将失败。
应该这样做。
答案 1 :(得分:0)
你可以尝试:
public void showSaveName(String name) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setIcon(android.R.drawable.ic_menu_save)
.setTitle(R.string.savePopupLabel)
.setMessage(R.string.savePopupMessage)
.setPositiveButton(R.string.save_yes, new alter(name))
.setNegativeButton(R.string.save_no, null);
AlertDialog dialog = builder.create();
dialog.show();
}