我正在使用roboelectric编写函数的单元测试,并且遇到空指针异常,但是我已经分配了变量。 我对此很陌生,所以如果有任何错误,请原谅我。
@Before
public void setup() {
intent = new Intent(context, Xyz.class);
intent.putExtra("abc", "abc");
xyz = Robolectric.buildActivity(Xyz.class, intent)
.create().start().get();
}
@Test
public void onConfigurationChanged() {
int currentOrientation = xyz.getRequestedOrientation();
RelativeLayouot gifframe = xyz.findViewById(R.id.gif_frame);
assertNotNull(gifframe);
assertEquals(gifframe.getVisibility(), VISIBLE);
}
}
我希望gifframe能够获得可见性,但是gifframe返回空值。我搜索此方法的任何地方都是在调用它之前分配值。我已经在上一行中指定了值。
答案 0 :(得分:0)
好像findViewById
返回null
。对于给定的view
,基本上没有Id
可用。那是调试的正确位置。
我建议您附加一个调试器,看看正在加载的view
是什么,并检查它是否具有所需的视图。
希望这会有所帮助。
答案 1 :(得分:0)
这样做的时候
RelativeLayouot gifframe = xyz.findViewById(R.id.gif_frame);
确保您已完成setContentView(R.layout.thefilewhichhas_gif_frame)
意思是确保它知道需要去哪里寻找gif_frame
。