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?

34
demandé sur ROMANIA_engineer 2010-08-11 15:55:19

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).

48
répondu Andreas_D 2010-08-11 12:16:38

cela peut être utile si vous voulez utiliser juste assertEquals sans dépendre de votre version Junit

assertTrue(Arrays.equals(expected, actual));
28
répondu carlospiles 2012-02-16 19:56:21

Essayez d'ajouter:

import static org.junit.Assert.*;

assertArrayEquals est une méthode statique.

5
répondu user417196 2015-09-04 11:37:15

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.

0
répondu mdma 2010-08-11 12:10:46