我如何处理自动测试期间任何时间都可能出现的对话框



我正在尝试使用Android Espresso进行自动化单元测试。

我有一个对话框,该对话框是由推送通知事件触发的,该通知事件可能会在测试运行时的任何时间出现。我希望单位测试能够在不破坏单元测试的情况下删除对话框,这是可能的吗?

我的代码在启动对话框后进行检查一次,如果存在,则将其删除,或者在不存在的情况下继续进行单位测试。我希望能够随时显示对话框的任何时间进行检查,这可能是任何时候,而不是在启动后仅一次。

我正在尝试找到一种方法,而无需在单元测试中的每行代码之后添加检查。

我尝试使用 handler.postDelayed只是经常检查,但似乎没有像我从单元测试运行时所期望的那样工作。

如果您使用的是实现对话框的对话框,则在显示

之前,应该在对话框中添加一个onshowlistener

我同意@commonsware的评论。但是,在您的情况下,您可能会考虑有一个标志,该标志说该应用程序是否处于测试模式。因此,您可能会考虑具有以下变量。

public static boolean TESTING = true; 

创建生产构建时,只需将变量设置为false即可关闭测试模式。

因此,在显示AlertDialog之前,您可以考虑检查变量并决定是否弹出对话框。

最新更新