Android Robolectric是单窗格(/单片段)-测试

Android Robolectric是单窗格(/单片段)-测试,android,android-fragments,robolectric,Android,Android Fragments,Robolectric,我刚开始尝试Robolectric,因为我现在正在玩它,我想在那个里集成它并做一些基本的测试 我想测试的第一件事是单窗格/双窗格处理是否正常工作 因此,基本上可以归结为: 小型设备&纵向->单窗格 大型设备&langscape->双窗格 由于该示例的代码是在线的(而且它是Android Studio中的标准模板),因此我不会再将其复制到这里。只有一件事:启动时,活动通过检查以下内容来确定其单窗格还是双窗格: if (findViewById(R.id.exercise_detail_con

我刚开始尝试Robolectric,因为我现在正在玩它,我想在那个里集成它并做一些基本的测试

我想测试的第一件事是单窗格/双窗格处理是否正常工作

因此,基本上可以归结为:

  • 小型设备&纵向->单窗格
  • 大型设备&langscape->双窗格
由于该示例的代码是在线的(而且它是Android Studio中的标准模板),因此我不会再将其复制到这里。只有一件事:启动时,活动通过检查以下内容来确定其单窗格还是双窗格:

 if (findViewById(R.id.exercise_detail_container) != null) [..]
似乎对于机器人分子来说,它总是双窗格。

因此,我的单窗格测试非常简单:

@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));
    }
}
但测试失败。

谁能告诉我为什么?这应该很好用,不是吗


仅供记录:是的,在模拟器中一切正常。

尝试反转顺序:
小端口
不知道是否会修复,但它们确实必须按表中的顺序出现:

如果对资源目录使用多个限定符,则必须按照表中列出的顺序将它们添加到目录名中

支持此订购:

资源解析的限定符,例如“fr normal port hdpi”


这似乎是固定的版本2.4的机器人

我只是测试了它,但它不能解决问题。但感谢inputNo prob,我将把它保留在这里,这样就没有其他人建议将其作为解决方案。不确定这是否是问题所在,但应该是小端口,因为android和robo文档似乎都建议严格遵守顺序。是的,请阅读Weston的回答。但是谢谢