JUnit test pour assertEqual NullPointerException

Je ne suis pas sûr de savoir pourquoi les cas de test ne dispose pas d'une sortie de true. Deux cas doivent donner un NullPointerException.

J'ai essayé de faire cela (Pas exactement le même mais il donne et de sortie de 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());
}

Coureur:

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

Méthode:

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

Cas De Test:

@Test(expected=NullPointerException.class)
public void testNullInput() {
    assertEquals(nullString.indexOf(3), StringMethods.myIndexOf(null, 'd',3));
}
C'est pas entièrement claire de ce que vous êtes en train de tester, ou de faire valoir ici. Pourquoi avez-vous avoir à la fois une assertion et une exception prévue dans la même méthode de test? L'assertion ne sera jamais atteint en raison de la NullPointerException.

OriginalL'auteur Liondancer | 2014-03-25