Utilisation d'assertArrayEquals dans les essais unitaires
Mon intention est d'utiliser assertArrayEquals(int[], int[])
méthode de JUnit décrite dans L'API pour la vérification d'une méthode dans ma classe.
Mais Eclipse m'indique le message d'erreur qu'il ne peut pas reconnaître une telle méthode. Ces deux importations sont en place:
import java.util.Arrays;
import junit.framework.TestCase;
ai-je raté quelque chose?
4 réponses
cela devrait fonctionner avec JUnit 4:
import static org.junit.Assert.*;
import org.junit.Test;
public class JUnitTest {
/** Have JUnit run this test() method. */
@Test
public void test() throws Exception {
assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
}
}
(la réponse est basée sur cet article wiki)
et c'est la même chose pour L'ancien cadre de JUnit (JUnit 3):
import junit.framework.TestCase;
public class JUnitTest extends TestCase {
public void test() {
assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
}
}
noter la différence: pas D'Annotations et la classe test est une sous-classe de TestCase (qui implémente les méthodes static assert).
cela peut être utile si vous voulez utiliser juste assertEquals sans dépendre de votre version Junit
assertTrue(Arrays.equals(expected, actual));
Essayez d'ajouter:
import static org.junit.Assert.*;
assertArrayEquals
est une méthode statique.
si vous écrivez JUnit 3.x tests de style qui s'étendent TestCase, alors vous n'avez pas besoin d'utiliser le Assert
qualificatif - TestCase s'étend S'affirmer et donc ces méthodes sont disponibles sans le qualificatif.
si vous utilisez les annotations de JUnit 4, en évitant la classe de base de TestCase, alors le Assert
qualificatif est nécessaire, ainsi que l'importation org.junit.Assert
. Vous pouvez utiliser une importation statique pour éviter le qualificatif dans ces cas, mais ceux-ci sont considérés pauvre de style par certains.