2017-04-09 1 views
3

Ich habe ein kleines Problem mit einem Unit-Test mein Professor gab mir. Bei der Zusammenstellung, erhalte ich folgende Fehler:
cannot find symbol import org.junit.Assert.assertArrayEquals; cannot find symbol import org.junit.Assert.assertEquals; import org.junit.Assert.assertFalse; import org.junit.Assert.assertTrue;Fehler beim Import von org.junit.Assert

ich JUnit heruntergeladen haben, und ich kann eine ähnliche Datei kompilieren, also warum bin ich Probleme damit zu haben? Der Code ist:

import java.util.Comparator; 
import org.junit.Assert.assertArrayEquals; 
import org.junit.Assert.assertEquals; 
import org.junit.Assert.assertFalse; 
import org.junit.Assert.assertTrue; 
import org.junit.Before; 
import org.junit.Test; 

    public class SortingTests { 

     class IntegerComparator implements Comparator<Integer> { 
     @Override 
     public int compare(Integer i1, Integer i2) { 
      return i1.compareTo(i2); 
     } 
     } 

     private Integer i1,i2,i3; 
     private OrderedArray<Integer> orderedArray; 

     @Before 
     public void createOrderedArray(){ 
     i1 = -12; 
     i2 = 0; 
     i3 = 4; 
     orderedArray = new OrderedArray<>(new IntegerComparator()); 
     } 

     @Test 
     public void testIsEmpty_zeroEl(){ 
     assertTrue(orderedArray.isEmpty()); 
     } 

     @Test 
     public void testIsEmpty_oneEl() throws Exception{ 
     orderedArray.add(i1); 
     assertFalse(orderedArray.isEmpty()); 
     } 


     @Test 
     public void testSize_zeroEl() throws Exception{ 
     assertEquals(0,orderedArray.size()); 
     } 

    } 
+1

Wahrscheinlich das Glas ist nicht im Klassenpfad. Könnten Sie das bitte bestätigen? bitte auch sagen, welches Glas verwenden Sie? – DNAj

+0

Ich benutze JUnit 4.12 und das Glas sollte im Klassenpfad sein. Ich bin in der Lage, einen ähnlichen Test in demselben Ordner zu kompilieren. – Leo

+0

Ok, ich habe einen Fehler gemacht mit dem Klassenpfad. Danke für die Hilfe. – Leo

Antwort

1

Sie das Stichwort hinzufügen sollte static es zu importieren. Ein Beispiel:

import static org.junit.Assert.assertFalse; 
+0

Addind das Schlüsselwort gibt mir den folgenden Fehler: Paket org.junit existiert nicht – Leo

3

Unter der Annahme, dass Sie die JUnit dependency im Classpath haben, import static für die assert Methoden verwenden:

import static org.junit.Assert.assertArrayEquals; 
import static org.junit.Assert.assertEquals; 
import static org.junit.Assert.assertFalse; 
import static org.junit.Assert.assertTrue; 

Oder einfach verwenden:

import static org.junit.Assert.*; 
+0

Ok Ich machte einen Fehler mit dem Klassenpfad. Danke für die Hilfe trotzdem. – Leo

1

Was Sie suchen ist ein Statischer Import

Die Linie import org.junit.Assert.assertArrayEquals; verweist die Methode assertArrayEquals aus der Klasse org.junit.Assert

eine statische Methode importieren, so dass es aufrufbar ist wie assertEquals(0,orderedArray.size()); mit einer statischen Importleitung erfolgt. Versuchen Sie, die folgenden aus:

import static org.junit.Assert.assertArrayEquals; 
import static org.junit.Assert.assertEquals; 
import static org.junit.Assert.assertFalse; 
import static org.junit.Assert.assertTrue; 

Alternativ können Sie:

import static org.junit.Assert.*; 

, oder man konnte:

import org.junit.Assert; 

und verweisen auf die Methoden wie

Assert.assertEquals(0,orderedArray.size()); 
Verwandte Themen