Mon intention est d'utiliser assertArrayEquals(int[], int[])
la méthode JUnit décrite dans l'API pour la vérification d'une méthode dans ma classe.
Mais Eclipse me montre 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 manqué quelque chose?
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 framework 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});
}
}
Notez la différence: pas d'annotations et la classe de test est une sous-classe de TestCase (qui implémente les méthodes d'assertion statiques).
Cela pourrait être utile si vous souhaitez utiliser simplement 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 des tests de style JUnit 3.x qui étendent TestCase , vous n'avez pas besoin d'utiliser le qualificatif Assert
- TestCase étend Assert lui-même et ces méthodes sont donc disponibles sans le qualificatif.
Si vous utilisez des annotations JUnit 4, en évitant la classe de base TestCase, le qualificatif Assert
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 comme style médiocre par certains.