当我创建并运行单元测试时,(在带有 JUnit 4.5 或 4.82 的 Eclipse (Galileo) 中)
@Before 永远不会执行(?)。
下面是一些示例代码。我希望输出是:
initialize
testGetFour
但这只是:
testGetFour
@BeforeClass 和@AfterClass 也从不执行。
谁能告诉我怎么会这样?
public class SomeClass
{
public static int getFour()
{
return 4;
}
}
//---
import org.junit.Before;
import org.junit.Test;
import junit.framework.TestCase;
public class TestSomeClass extends TestCase
{
@Before
public void initialize() // This method will never execute (?!).
{
System.err.println("initialize");
}
@Test
public void testGetFour()
{
System.err.println("testGetFour");
assertEquals(4, SomeClass.getFour());
}
}
最佳答案
因为您正在扩展 TestCase
。这是一个 JUnit3 类,因此 Eclipse 将其视为此类。 JUnit 4 不需要测试类来扩展任何东西。
删除它,它应该可以正常工作。
关于java - JUnit 4.x : why is @Before never executed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3338031/