web-dev-qa-db-fra.com

Impossible de trouver l'assertion de symbole

J'essaie d'écrire mes premiers tests unitaires pour une calculatrice, mais NetBeans dit qu'il ne peut pas trouver le symbole assertEquals et l'annotation @Test.
Dois-je inclure quelque chose?
J'utilise NetBeans 7.3.1 et W7.

package calculator;

import org.junit.Assert.*;

public class UnitTests{

    @Test
    public void checkAdd(){
        assertEquals(2, Calculator.rpnCalc(" 2 3 + "));
    }
}

EDIT: Merci les gars, l'importer comme statique a aidé. L'annotation de test n'est requise que comprenant

import org.junit.Test;

27
Giome Pool Guy

assertEquals est une méthode statique. Puisque vous ne pouvez pas utiliser de méthodes statiques sans les importer explicitement de manière statique, vous devez utiliser soit:

import org.junit.Assert;
...
Assert.assertEquals(...)

ou:

import static org.junit.Assert.assertEquals;
...
assertEquals(...)

Pour @Test c'est un peu différent. @Test est une annotation comme vous pouvez le voir par le @. Les annotations sont importées comme des classes.

Vous devez donc l'importer comme:

import org.junit.Test;

Évitez généralement d'utiliser des caractères génériques sur les importations comme import org.junit.*. Pour des raisons, voir Pourquoi utilise-t-on un caractère générique avec une Java import import statement bad? .

54
bobbel

JUnit 5 Jupiter

Dans JUnit 5, le nom du package a changé et les assertions sont à org.junit.jupiter.api.Assertions et hypothèses à org.junit.jupiter.api.Assumptions

Vous devez donc ajouter les éléments suivants static import:

import static org.junit.jupiter.api.Assertions.*;

Voir aussi http://junit.org/junit5/docs/current/user-guide/#writing-tests-assertions

6
isapir

Je travaille sur JUnit dans un environnement Java 8, en utilisant jUnit4.12

pour moi: le compilateur n'a pas pu trouver la méthode assertEquals, même lorsque j'ai utilisé
import org.junit.Assert;

J'ai donc changé
assertEquals("addb", string);
à
Assert.assertEquals("addb", string);

Donc, si vous rencontrez un problème concernant assertEqual non reconnu, changez-le en Assert.assertEquals(,); cela devrait résoudre votre problème

4

Vous devez ajouter la dépendance au fichier pom.xml

<dependency>
  <groupId>junit</groupId>          
  <artifactId>junit</artifactId>            
  <version>4.12</version>       
</dependency>
0
Tu Minh

J'avais le même problème cannot resolve symbol Assert j'ai essayé ces solutions en ajoutant l'import différent des différentes réponses.

  1. import org.junit.Assert;
  2. import statique org.junit.Assert. *;
  3. import statique org.junit.Assert.assertEquals;
  4. import statique org.junit.jupiter.api.Assertions. *;
  5. import org.junit.Assert;

mais la solution qui a fait la magie était simplement de placer le junit-4.12.jar dans le app\lib ditectory et juste construire le projet, et importer comme ça

import org.junit.Assert;

vous pouvez télécharger le junit-4.12.jar de ici

0
Ali Tamoor