Roboelectric: как разрешить зависимый объект - PullRequest
0 голосов
/ 27 июня 2018

У меня есть одно действие, и я тестирую один его метод с использованием 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());
}

следующий установленный метод действия

public class MyActivity extends AppCompatActivity {

TextView tView;

@ Inject Student 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 - ноль. но мой вопрос, как сделать его доступным в Test с использованием Roboelectric без использования Mokito?

1 Ответ

0 голосов
/ 03 июля 2018

Вы уверены, что вставили свой код именно так, как он выполняется? В onCreate должен быть параметр Bundle, и действие не вызвало setConentView до того, как вы обнаружите findViewById и некоторые другие проблемы ....

Как правило, действие, созданное Robolectric.setupActivity, должно быть готово для использования в остальной части тестового примера, а onCreate (Bundle) должен был быть выполнен до возврата.

...