使用assertEquals

时间:2016-05-22 15:09:25

标签: java junit warnings testcase

我想进行一个简单的测试,使用JUnit的Player方法检查我的类assertEquals的name属性。当我运行JUnit测试时,出现警告失败(AssertionFailedError:在PlayerTest中找不到测试),我做错了什么?

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());
    }
}

2 个答案:

答案 0 :(得分: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());
    }

}

编辑:请参阅Sunil的答案,使其以Junit-3风格运行。

答案 1 :(得分:0)

函数名称应以" test"开头。让TestCase了解它是一个运行的测试函数。删除@Test注释。

在这种情况下,请将NameTest()更改为testName()。它会起作用。