Robolectric是单面板(/单片段)测试。

4
我刚开始尝试使用Robolectric,由于我正在尝试从Google开发者页面中的动态单/双窗格片段示例,我认为将其集成到那里并进行一些基本测试。我想要测试的第一件事是单/双窗格处理是否正确。因此,它基本上归结为:
  • 小设备&竖屏 -> 单窗格
  • 大设备&横屏 -> 双窗格
由于示例的代码在线上(并且它是Android Studio中的标准模板),我不会再次在此处复制它。只有一件事:在启动时,该活动通过检查来确定它是单窗格还是双窗格:
 if (findViewById(R.id.exercise_detail_container) != null) [..]

看起来对于Robolectric来说,它总是双面板。

因此,我的单面板测试非常简单:

@Config(emulateSdk = 18)
@RunWith(RobolectricTestRunner.class)

public class SinglePaneTest {
    private ExerciseListActivity activity;
    private FragmentManager fragmentManager;

    @Before
    @Config(qualifiers = "port-small")
    public void setup() {
        this.activity = Robolectric.buildActivity(ExerciseListActivity.class).create().resume().get();
        this.fragmentManager = activity.getFragmentManager();
    }
    @Test
    @Config(qualifiers = "port-small")
    public void testSinglePane() {
        assertNull(activity.findViewById(R.id.exercise_detail_container));
    }
}
但是测试失败了。 有人可以告诉我为什么吗?这应该完美地正常工作,不是吗?
仅供参考:是的,在模拟器中一切都运行良好。

不确定这是否是问题,但应该是small-port,因为Android和Robo文档似乎都建议严格遵循顺序。 - Alex Florescu
1
是的,请阅读韦斯顿的回答。但是谢谢。 - Langusten Gustel
2个回答

1

我刚刚测试了一下,它没有修复这个问题。但是感谢您的输入。 - Langusten Gustel
2
没问题,我会把它留在这里,这样其他人就不会再提出它作为解决方案了。 - weston

0

这个问题似乎在 Robolectric 的 2.4 版本中得到了修复!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接