Android Robolectric shadow activity.findViewById返回空值 Robolectric shadow activity.findViewById返回空值。
这是一个相当简单的练习。所有的图坦卡蒙都与此相似,所以应该很简单。想知道是否有其他人正在经历这种情况。代码如下Android Robolectric shadow activity.findViewById返回空值 Robolectric shadow activity.findViewById返回空值。,android,unit-testing,robolectric,Android,Unit Testing,Robolectric,这是一个相当简单的练习。所有的图坦卡蒙都与此相似,所以应该很简单。想知道是否有其他人正在经历这种情况。代码如下 @Test public void shouldFindViewsById(){ activity = Robolectric.buildActivity(DeckardActivity.class).create().visible().get(); assertThat(activity).isNotNull(); TextView textView
@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();
}
我希望你根据你的活动来使用这个例子
原始布局仅包含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>
如果您喜欢,这里是一个机器人分子测试的扩展示例我添加了另一个textview,因此这不是问题所在。也不适用于原始的“R.id.text”。这可能是一个愚蠢的问题,但当您启动示例应用程序时,您将在屏幕上看到您的视图?只是为了清楚,我们有相同的:克隆deackard gradle;添加assertThat(activity.findviewbyd(R.id.text)).isNotNull();对现有的测试;然后使用在上一设置中刚刚放弃的./gradlew test启动测试。从你做过的那个开始。看起来不错。
activity = Robolectric.buildActivity(DeckardActivity.class).create().visible().get();
assertThat(activity).isNotNull();
TextView textView = (TextView) activity.findViewById(R.id.text);
assertThat(textView).isNotNull();