在AndroidTestCase中访问AlertDialog

在AndroidTestCase中访问AlertDialog,第1张

概述我正在使用ActivityInstrumentationTestCase2在我的GUI上执行自动黑盒测试.有没有一种方法可以单击对话框,或者在单元测试中获取属于该对话框的视图?我想出的唯一方法是保留对对话框的引用,并让我的Activity实现一个getter方法,以使测试用例可以访问对话框.有没有不需要更改生产代

我正在使用ActivityInstrumentationTestCase2在我的GUI上执行自动黑盒测试.有没有一种方法可以单击对话框,或者在单元测试中获取属于该对话框的视图?

我想出的唯一方法是保留对对话框的引用,并让我的Activity实现一个getter方法,以使测试用例可以访问对话框.有没有不需要更改生产代码的更好的方法?

解决方法:

是的,有一种更好的方式将AlertDialogs公开给您的自动化代码,但是您将必须在生产代码中执行此 *** 作.这将是值得的,尽管它会使您的生活更加轻松.让我解释.

您可以将AlertDialogs分配给WeakHashMap对象,并非常容易地检索它们.这是-

//DeFinition for WeakHashMap ObjectWeakHashMap< Integer, Dialog > managedDialogs = new WeakHashMap< Integer, Dialog  >();//Some alertdialog builder that needs to be exposedAlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(YourActivity.this);switch(ID)    {case DIALOG:    alertDialogBuilder.setTitle("some Title")    .setMessage("some message")    .setPositivebutton("button text", Onclick activity)             .setNeutralbutton("button text", Onclick activity)              .setNegativebutton("button text", Onclick activity)         .setCancelable(true);    AlertDialog dialog = alertDialogBuilder.create();    //Assigning the value of this dialog to the Managed WeakHashMap    managedDialogs.put(DIALOG, dialog);    return dialog;    }

现在在您的测试框架中,当您希望对话框出现时,只需-

AlertDialog dialog = (AlertDialog) activity.managedDialogs.get(YourActivity.DIALOG);
总结

以上是内存溢出为你收集整理的在AndroidTestCase中访问AlertDialog全部内容,希望文章能够帮你解决在AndroidTestCase中访问AlertDialog所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1082361.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存