android - 如何从单元/robotium 测试中获取对 fragment 的引用?

标签 android robotium

如何在 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/

相关文章:

android - 无法让我断言当前 Activity 工作

android - Robotium 断言失败错误 : Click can not be completed

java - java (Robotium) 中的隐藏方法和类

android - 如何在 ListView 中突出显示 ListItem?

android - 多通知处理

AndroidTV - 更改行标题的颜色[BrowseFragment]

android - 无法解决:com.github.mopa11:MainDemo1:1.0.0

android - 使用 Robotium 进行不同的测试时, Activity 不会重新启动

android - Robolectric 示例和 Gradle 插件

java - Google 日历 java.lang.NoClassDefFoundError