使用 assertEquals 时 JUnit 测试意外失败
Unexpected failure on JUnit test when using assertEquals
我想做一个简单的测试,使用 JUnit 的 assertEquals
方法检查我的 class Player
的名称属性。当我 运行 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());
}
}
我假设这是因为您编写了 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 风格工作。
函数名要以"test"开头,这样TestCase才能理解为运行的测试函数。删除@Test 注释。
在这种情况下,将 NameTest()
更改为 testName()
。它会起作用。
我想做一个简单的测试,使用 JUnit 的 assertEquals
方法检查我的 class Player
的名称属性。当我 运行 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());
}
}
我假设这是因为您编写了 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 风格工作。
函数名要以"test"开头,这样TestCase才能理解为运行的测试函数。删除@Test 注释。
在这种情况下,将 NameTest()
更改为 testName()
。它会起作用。