首页 > 解决方案 > Roboelectric:如何解决依赖对象

问题描述

我有一个活动,我正在使用 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;

@Inject 学生;

@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 进行测试?

标签: androidunit-testingrobolectric

解决方案


你确定你在运行时粘贴了你的代码吗?onCreate应该有Bundle的参数,并且在findViewById之前activity没有调用setConentView,还有一些其他的问题....

一般来说,由 Robolectric.setupActivity 构造的活动应该可以在测试用例的其余部分中使用,并且在返回之前应该已经执行了 onCreate(Bundle)。


推荐阅读