我正在测试两个 Activity :第一个完成其测试并完成,但第二个中的第一个测试崩溃并出现以下错误:
Test failed to run to completion. Reason: 'Instrumentation run failed due to 'java.lang.NullPointerException''. Check device logcat for details
我认为测试类中的 activity = getActivity();
行给出了一个空值,因此导致测试崩溃。这是测试类的相关部分。为什么会发生这种情况,我该如何解决?
public ResultActivityTest() {
super(ResultActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
activity = getActivity();
displayoperands = (TextView) activity.findViewById(R.id.result_textview);
resultdisplay = (TextView) activity.findViewById(R.id.textView2);
canvas = (SurfaceView) activity.findViewById(R.id.surfaceview);
layoutRoot = (RelativeLayout) activity.findViewById(R.id.rellay);
back = (Button) activity.findViewById(R.id.back_button);
activity.setImag1(2.0);
activity.setImag2(2.0);
activity.setReal1(2.0);
activity.setReal2(2.0);
activity.setOperation("A");
}
最佳答案
在对 Activity 进行一些篡改并反复试验后,我弄明白了。问题是, Activity 的 onCreate 需要一个包含来自调用 Activity 的变量的包。这是 null
,在不传递任何变量的情况下,不断使测试试图启动的 Activity 崩溃。解决方案是使用适用于 Activity 的(虚拟/默认)值初始化所需的变量。
关于java - JUnit 测试在 setUp 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27408974/