在我的许多测试中,我的应用程序正在运行AsyncTasks
访问数据库并且无法取消。在我的测试结束时,我关闭我的数据库,删除它,然后重新打开它,这样我就有了一个新的数据库装置。
问题是,当AsyncTasks
测试关闭和删除数据库期间碰巧仍在运行时,我将在代码中得到运行时异常。这在生产代码中永远不会发生,因为数据库在生产中永远不会关闭。
Robotium 有一个测试辅助方法finishOpenedActivities
,我在我的测试拆解方法中使用它。如果有某种方法可以修改 finishOpenedActivities 以确保所有子线程(特别是 AsyncTasks)也完成,那将非常有帮助。否则,我可能不得不在我的所有 AsyncTasks 中执行取消检查,以支持可靠的测试。
是否有某种方法可以等到所有子线程(特别是 AsyncTasks)完成?