java - assertEqual NullPointerException 的 JUnit 测试

标签 java junit junit4

我不确定为什么测试用例没有输出 true。这两种情况都应该给出一个 NullPointerException

我试过这样做(不完全相同,但它给出了 true 的输出):

    String nullStr = null;

//@Test
public int NullOutput1() {
    nullStr.indexOf(3);
    return 0;
}

//@Test(expected=NullPointerException.class)
public int NullOutput2() {
    nullStr.indexOf(2);
    return 0;
}

@Test(expected=NullPointerException.class)
public void testboth() {
    assertEquals(NullOutput1(), NullOutput2());
}

运行者:

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunnerStringMethods {
    public static void main(String[] args) {
        Result result = JUnitCore.runClasses(TestJunitMyIndexOf.class);
        for (Failure failure : result.getFailures()) {
            System.out.println(failure.toString());
        }
        System.out.println(result.wasSuccessful());
    }
}

方法:

public static int myIndexOf(char[] str, int ch, int index) {
        if (str == null) {
            throw new NullPointerException();
        }
        // increase efficiency
        if (str.length <= index || index < 0) {
            return -1;
        }
        for (int i = index; i < str.length; i++) {
            if (index == str[i]) {
                return i;
            }
        }
        // if not found
        return -1;
    }

测试用例:

@Test(expected=NullPointerException.class)
public void testNullInput() {
    assertEquals(nullString.indexOf(3), StringMethods.myIndexOf(null, 'd',3));
}

最佳答案

我相信你想在这里使用fail:

@Test(expected=NullPointerException.class)
public void testNullInput() {
    fail(nullString.indexOf(3));
}

如果需要,请确保添加 import static org.junit.Assert.fail;

关于java - assertEqual NullPointerException 的 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623649/

相关文章:

java - 与 Spring 一起 hibernate

java - 使用来自 java 的 windows "net use"命令和 win32 api

junit - 使用 JUnit 时可以避免重新定义 JNDI 数据源吗?

android - Junit 使用 ActivityInstrumentationTestCase2 - 构造函数 : Stub 中的异常

selenium - 断言确认的 webdriver 等效项是什么?

Java .contains 实际上并没有搜索我的数组列表

java - 使用 Junit 的 GWT 类的单元测试代码

java - 未从 JUnit 测试加载 'application.yml' 中的 Spring Boot 属性

java - 多线程同时运行进程

java - Apache Http 组件 - 设置 cookie