android - 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 进行测试?
解决方案
你确定你在运行时粘贴了你的代码吗?onCreate应该有Bundle的参数,并且在findViewById之前activity没有调用setConentView,还有一些其他的问题....
一般来说,由 Robolectric.setupActivity 构造的活动应该可以在测试用例的其余部分中使用,并且在返回之前应该已经执行了 onCreate(Bundle)。
推荐阅读
- python - 包含空格的属性的 XPath
- c++ - 尝试在 SET_VECTOR_ELT 中设置索引 0/0
- r - 单元测试 R Shiny App rhandsontable 与 shinytest
- java - Swift 的 CharacterSet.decimalDigits 和 unicodeScalars 的 Kotlin 等价物是什么?
- c# - 如何对 Serilog 的 LogContext 属性进行单元测试
- android - 基于 Google 应用中的 Material Design 2 自定义选择的标签指示器
- ibm-mq - 应用程序团队获取 JMSFMQ6312:Java(tm) MQI 中发生异常
- excel - 搜索宏未返回所有结果
- javascript - 如何检测变量是否是纯javascript对象
- python - pyinstaller 找不到隐藏的导入