J'ai créé une méthode pour compter l'occurrence d'un caractère donné dans String.Différence de test JUnit entre assertEquals() et Assert.assertEquals()
public Integer numberOf(String str, Character a){}
J'ai essayé de tester normalement en utilisant:
@Test
public void test1(){
Integer result = oc.numberOf("Lungimirante", 'u');
Assert.assertEquals(1, result);
}
mais Eclipse il se plaint.
Je googlé et je trouve que pour le tester je avais besoin d'utilisation:
assertEquals(1, result); //it works correctly
au lieu de: Assert.assertEquals(1, result);
Pourriez-vous me dire pourquoi? Quelle est la différence?
Le 'affirmer [. Equals, etc]' invocations de méthode proviennent d'une importation statique la classe 'junit.framework.Assert' (ou' org.junit.Assert' etc.). Vous avez probablement une instruction 'import static junit.framework.Assert. *' Ou une instruction similaire, mais vous n'avez pas importé 'junit.framework.Assert'. – Mena
@Mena: oui pour utiliser 'assertEquals' j'ai importé:' import static org.junit.Assert.assertEquals; ' et avant d'utiliser' Assert.assertEquals' importent seulement 'org.junit.Assert;' – SwampThing
Je déteste autoboxing et Ceci est une des raisons. Obtenir 'NullPointerExceptions' où vous ne les attendez pas en est une autre. Pour cette raison j'ai configuré Eclipse pour voir les occurrences d'autoboxing comme erreur (et IMHO il parle de lui-même qu'il y a une option pour ceci, que je ne me trompe pas avec mon opinion) – Lothar