我刚开始学习使用Robotium来测试我的应用程序。我写了重置统计列表的测试用例,然后检查,如果值等于0的代码如下:Robotium - 等待活动的任务完成
public void testClearStats() {
solo.clickOnButton("Clear Stats");
solo.clickOnButton("Yes");
TextView views = (TextView) solo.getView(R.id.textViewsNum);
TextView prompts = (TextView) solo.getView(R.id.textPromptsNum);
TextView completions = (TextView) solo.getView(R.id.textCompleteNum);
assertEquals("0", views.getText().toString());
assertEquals("0", prompts.getText().toString());
assertEquals("0", completions.getText().toString());
}
当它不应该,因为它被检查的测试失败在重置结果之前,TextViews的值。为了解决这个问题,我说这行:
solo.waitForActivity(solo.getCurrentActivity().toString());
这种说法测试通过,但它似乎采取不必要的长时间才能完成。我想知道是否有更好的/正确的方式来做这件事,或者这是做这件事的最好方法吗?
感谢
好吧我现在理解它背后的逻辑。然而,很难找到需要等待的东西。通过solo.waitForText()方法,我可以选择具体查看哪些TextView?我在这个屏幕上有很多TextView,有些可以在清除统计之前以0开始。 –
实际上没有迹象表明统计数据已被清除,除了所有值都被重置。但是,如果所有这些值都已经为0,那么您无法确定测试是否正确执行,因为这些值不会更改。 –
你回答了你自己的问题,也是为什么在TDD你没有通过测试失败之前,你需要确保你的指标实际上发生了变化,所以你应该确保在重置之前值不是0,否则你永远不会当然。尽管如此,对于整个测试而言,这是一个问题,而不是机器人。至于等待的部分,我会添加一些代码来帮助你! –