我有一个活动,我正在使用Roboelectic Framework测试一种活动,但是我得到了空指针异常。
以下是测试代码
@Test
public void processTest() throws Exception {
MyActivity activity = Robolectric.setupActivity(MyActivity.class);
activity.setValue();
tView = (TextView) activity.findViewById(R.id.text);
assertEquals(“1”,tView.getText().toString());
}
以下是活动的setValue方法
public class MyActivity extends AppCompatActivity {
TextView tView;
@注入学生s;
@Override
public void onCreate() {
tView = (TextView) activity.findViewById(R.id.text);
}
public void setValue() {
String id = s.getId();
tView.setText(S);
}
运行测试时,我在String id = s.getId();
行上收到空指针错误
我知道s
为空。但是我的问题是如何在不使用Mokito的情况下使用Roboelectric在测试中使用它?
答案 0 :(得分:0)
您确定粘贴的代码与运行时完全相同吗? onCreate应该具有Bundle参数,并且在您执行findViewById之前,活动没有调用setConentView以及其他一些问题。...
通常,由Robolectric.setupActivity构造的活动应准备在其余测试用例中使用,并且应在返回之前执行onCreate(Bundle)。