java - JUnit 测试在 setUp 中崩溃

标签 java android testing junit nullpointerexception

我正在测试两个 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/

相关文章:

安卓短信发送状态

json - 测试API请求是否正常工作

使用 mocha 的 nodejs(连接)应用程序的 http 请求测试?

android - 在 Android 游戏中显示文本

javascript - 主题中的 Cypress 获取按钮

java - 线程中的异常 "AWT-EventQueue-0"java.lang.ClassCastException : Exception with add()

java - 如何编写一个将在后台监听已经创建的客户端套接字?

java - 转换明文以执行 Elgamal 加密

java - MessageConsumer接收方法未从远程机器队列读取消息

android - 如何在android中使用XMLStreamWriter编写XMl文件