如何在 Robotium 单元测试中获取对 fragment 的引用。就我而言, fragment 包含一个 WebView。我想使用solo 来获取 fragment 的引用?如何才能做到这一点?顺便说一句,我之前问过三个 robots/android 问题,但没有投票,也没有回应!我们不要忽视测试。请至少重视这个问题。
最佳答案
我已经离开robotium(和SO)一段时间了,但你过去可以执行以下操作,因为robotium没有内置的方法来获取 fragment 。
第一步是您需要当前的 Activity ,这很简单:
Activity current = solo.getCurrentActivity();
如果你查看Android activity API您会注意到它有 getFragmentManager() 方法,然后如果您遵循该方法,您将找到名为 findFragmentByXXX(); 的方法;
所以代码变成:
Fragment fragment =solo.getCurrentActivity().getFragmentManager().findFragmentByID(xxx);
然后你就会得到你的 fragment !
这可能存在一个问题,某些 Activity 没有 getFramentManager() 方法,而是具有 getSupportFragmentManager() 方法,该方法的工作原理相同,但为旧设备提供 fragment 支持,因此您可能需要使用一个或另一个。如果您需要同时支持这两种方法,那么不幸的是,您将不得不进行一些反射(reflection)来确定调用哪个方法。
关于android - 如何从单元/robotium 测试中获取对 fragment 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18647787/