2016-05-22 7 views
-1

Я хочу сделать простой тест, чтобы проверить атрибут имени моего класса Player с использованием метода assertEquals JUnit. Когда я запускаю тест JUnit, я получаю сбой с предупреждением (AssertionFailedError: Нет тестов, найденных в PlayerTest), что я делаю неправильно?Неожиданный сбой при проверке JUnit при использовании 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

** Что ** предупреждение? –

+0

TestCase вызывает проблемы. Удалите его и попробуйте добавить Assert.assertEquals (имя, player.getName()); он должен работать. Я протестировал его. –

ответ

2

Я предполагаю, что это потому, что вы написали Junit 3 стиля тестовый случай (с использованием extends TestCase) вместо аннотаций приводом Junit 4 стиля.

Вот тест стиль JUnit 4 будет выглядеть следующим образом:

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: Смотрите ответ Сунил, чтобы заставить его работать в Junit-3 стиле.

0

Имя функции должно начинаться с «теста» для TestCase, чтобы понять, что это тестовая функция для запуска. Удалите аннотацию @Test.

В этом случае измените NameTest() на testName(). Это будет работать.