Roboelectric:如何解决依赖对象

时间:2018-06-27 19:55:05

标签: android unit-testing robolectric

我有一个活动,我正在使用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在测试中使用它?

1 个答案:

答案 0 :(得分:0)

您确定粘贴的代码与运行时完全相同吗? onCreate应该具有Bundle参数,并且在您执行findViewById之前,活动没有调用setConentView以及其他一些问题。...

通常,由Robolectric.setupActivity构造的活动应准备在其余测试用例中使用,并且应在返回之前执行onCreate(Bundle)。