在 AndroidTestCase 中访问 AlertDialog
我正在使用 ActivityInstrumentationTestCase2 在我的 GUI 上进行自动黑盒测试。有没有办法单击对话框,或在单元测试中获取属于该对话框的视图?
我能想到的唯一方法是保留对对话框的引用,并让我的 Activity 实现一个 getter 方法来让测试用例访问该对话框。有没有更好的方法不需要更改我的生产代码?
I'm using ActivityInstrumentationTestCase2 to do automated black-box testing on my GUI. Is there a way to click on a dialog, or get Views belonging to the Dialog in unit tests?
The only way I could come up with is to keep a reference to the dialog and have my Activity implement a getter method to let testcases access the dialog. Is there a better way that doesn't require changing my production code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,有一种更好的方法可以将 AlertDialogs 暴露给自动化代码,但您必须在生产代码中执行此操作。但这是值得的,因为它会让你的生活变得更轻松。让我解释一下。
您可以将 AlertDialogs 分配给 WeakHashMap 对象并非常轻松地检索它们。方法如下 -
现在在您的测试框架中,当您期望出现对话框时,只需执行 -
Yes, there is a better way of exposing the AlertDialogs to your automation code but you WILL have to do that in the production code. It will be worth it though cause it will make your life a lot easier. Let me explain.
You can assign your AlertDialogs to a WeakHashMap object and retrieve them very easily. Here is how -
Now in your test framework, when you expect the dialog to appear, simply do -