2016-05-22 17 views
-1

Ich möchte einen einfachen Test durchführen, um das Namensattribut meiner Klasse Player mit der JUnit-Methode assertEquals zu überprüfen. Wenn ich den JUnit-Test ausführe, erhalte ich einen Fehler mit einer Warnung (AssertionFailedError: Keine Tests in PlayerTest gefunden), was mache ich falsch?Unerwarteter Fehler im JUnit-Test bei Verwendung von assertEquals

public class Player { 
    private String name; 
    private int id; 

    public Player(int id){ 
     this.setId(id); 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 
} 

public class PlayerTest extends TestCase { 

    @Test 
    public void NameTest(){ 
     Player player = new Player(1); 
     player.setName("Roberto"); 
     String name = "Roberto"; 
     assertEquals(name, player.getName()); 
    } 
} 
+0

** Was ** Warnung? –

+0

TestCase verursacht ein Problem. Entfernen Sie es und versuchen Sie, Assert.assertEquals hinzuzufügen (name, player.getName()); es sollte funktionieren. Ich habe es getestet. –

Antwort

2

Ich nehme an, das liegt daran, dass Sie einen JUnit 3 Stil Testfall (mit extends TestCase) statt der Anmerkung angetrieben Junit 4 Stil geschrieben.

Hier ist ein JUnit 4 Stil Test aussehen würde:

import junit.framework.TestCase; 


import org.junit.Test; 
import static org.junit.Assert.assertEquals; 


public class PlayerTest { 

    @Test 
    public void NameTest(){ 
     Player player = new Player(1); 
     player.setName("Roberto"); 
     String name= "Roberto"; 
     assertEquals(name,player.getName()); 
    } 

} 

Edit: Siehe Sunil Antwort auf es in JUnit-3-Stil zu arbeiten.

0

Der Funktionsname sollte mit "test" für TestCase beginnen, um zu verstehen, dass es sich um eine Testfunktion handelt. Entfernen Sie die @ Test-Annotation. In diesem Fall ändern Sie NameTest() zu testName(). Es wird klappen.