2013-12-17 15 views
19

Ich versuche, meine ersten Komponententests für einen Taschenrechner zu schreiben, aber NetBeans sagt, dass es das Symbol assertEquals und die Annotation @Test nicht finden kann.
Sollte ich etwas enthalten?
Ich benutze NetBeans 7.3.1 und W7.Kann das Symbol assertEquals nicht finden

package calculator; 

import org.junit.Assert.*; 

public class UnitTests{ 

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

EDIT: Danke Jungs, es als statisch zu importieren. Test Anmerkung erforderlich nur einschließlich

importieren org.junit.Test;

Antwort

40

assertEquals ist eine statische Methode. Da Sie nicht statische Methoden verwenden können, ohne dass sie explizit in einer statischen Art und Weise zu importieren, müssen Sie entweder:

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

oder:

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

Für @Test es ein bisschen anders ist. @Test ist eine Anmerkung, wie Sie durch die @ sehen können. Anmerkungen werden wie Klassen importiert.

So sollten Sie es mögen importieren:

import org.junit.Test; 

vermeiden allgemeinen Platzhalter bei der Einfuhr wie import org.junit.* verwenden. Aus Gründen siehe Why is using a wild card with a Java import statement bad?.

4

Ich arbeite an JUnit in Java-8-Umgebung, mit jUnit4.12

für mich: Compiler nicht in der Lage war, die Methode assertEquals zu finden, auch wenn ich
import org.junit.Assert;

verwenden Also änderte ich
assertEquals("addb", string);
zu
Assert.assertEquals("addb", string);

Also, wenn Sie Problem konfrontiert sind, in Bezug auf assertEqual nicht erkannt wird, es dann zuändernsollte es Ihr Problem

+2

Wenn Sie einen ** statischen ** Import nicht direkt mit der Methode 'assertEquals' verwenden, können Sie ihn nicht ohne die Klasse' Assert' in Ihrem Code verwenden, siehe meine Antwort! – bobbel

Verwandte Themen