【问题标题】:Robolectric shadow activity.findViewById returns nullRobolectric 影子 activity.findViewById 返回 null
【发布时间】:2014-05-17 05:33:01
【问题描述】:

Robolectric 影子 activity.findViewById 返回 null。

这是一个相当简单的练习。所有的tuts都与此类似,所以应该很简单。想知道是否还有其他人正在经历这种情况。代码如下。

@Test
public void shouldFindViewsById(){


    activity = Robolectric.buildActivity(DeckardActivity.class).create().visible().get();

    assertThat(activity).isNotNull();

    TextView textView = (TextView) activity.findViewById(R.id.textView);
    assertThat(textView).isNotNull();

    Button button = (Button) activity.findViewById(R.id.button);
    assertThat(button).isNotNull();

    EditText editText = (EditText) activity.findViewById(R.id.editText);
    assertThat(editText).isNotNull();

}

【问题讨论】:

    标签: android unit-testing robolectric


    【解决方案1】:

    我希望您使用基于您的 DeckardActivity 的 https://github.com/robolectric/deckard-gradle 示例?

    原始布局只包含一个id为R.id.text的视图

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
        <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Hello Espresso!"
        />
    </LinearLayout>
    

    检查您是否导入了正确的示例 R 类 import com.example.R; 并尝试遵循 test sn-p:

    activity = Robolectric.buildActivity(DeckardActivity.class).create().visible().get();
    
    assertThat(activity).isNotNull();
    
    TextView textView = (TextView) activity.findViewById(R.id.text);
    assertThat(textView).isNotNull();
    

    如果你喜欢这里是一个用于机器人测试的扩展示例https://github.com/nenick/android-gradle-template

    【讨论】:

    • 我添加了另一个文本视图,所以这不是问题。也不适用于原始的“R.id.text”。
    • 可能是个愚蠢的问题,但是当您启动示例应用程序时,您会在屏幕上看到您的视图吗?
    • 只是为了清楚我们有相同的:克隆 deackard-gradle;添加 assertThat(activity.findViewById(R.id.text)).isNotNull();对现有测试;然后用 ./gradlew test 开始测试
    • 刚刚放弃了之前的设置。从你已经完成的那个重新开始。看起来不错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2011-07-26
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多