我正在尝试使用 Robotium 测试登录场景。我的困惑是,我该如何测试以下内容:
案例1:如果Web服务调用过程中出现错误,随机显示一个对话框,我该如何处理。因为我不确定这个对话框是否会出现。
案例2:如果这件事处理了,测试是失败还是通过?因为要成功登录,用户应该导航到下一个屏幕。
您知道该对话框何时何地发生,因此可以将其放入代码中来处理该对话框。例如:
假设你有一些这样的代码
solo.clickOnView(view1);
solo.clickOnView(view2);
并且您知道对话框可能会出现在测试的这两个步骤之间,您可以将其放入类似以下的代码中:
if(solo.waitForView(dialogView, 1000, false)){
solo.clickOnView(dialogDismissButton);
solo.clickOnView(view2) //retry the step above
}
如果错误可能再次发生,那么将这些调用放入函数中并递归/循环通过在测试失败之前尝试此循环一段时间是有意义的。
至于案例 2。这取决于您的成功标准,理想情况下,如果我是您,我会尝试删除任何导致上述错误的外部依赖项,因此它永远不会发生,但如果您坚持认为它是片状的。那么用户是否认为这是一个错误?我可能会说,如果您的生产应用程序经常无法登录,那么该应用程序有问题,我会失败该步骤并且不实施上述几点,但这是我的解释,请与业务分析师/客户/最终用户交谈并了解他们的观点。