JUnit-Tests für assertEqual NullPointerException

Ich bin nicht sicher, warum der Testfall nicht haben eine Leistung von true. Beiden Fällen sollte eine NullPointerException.

Ich habe versucht, dies zu tun (Nicht genau das gleiche, aber es gibt-und Ausgabe von 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());
}

Läufer:

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());
    }
}

Methode:

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-Fall:

@Test(expected=NullPointerException.class)
public void testNullInput() {
    assertEquals(nullString.indexOf(3), StringMethods.myIndexOf(null, 'd',3));
}
  • Es ist völlig unklar, was du versuchst zu testen, oder behaupten hier. Warum haben Sie beide ein assert und eine erwartete Ausnahme in die gleiche test Methode? Die assert-wird nie erreicht werden durch die NullPointerException.
InformationsquelleAutor Liondancer | 2014-03-25
Schreibe einen Kommentar