当我创建并运行单元测试时,(在Eclipse(Galileo)中使用JUnit 4.5或4.82),
@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());
}
}
答案 0 :(得分:6)
因为你正在扩展TestCase
。这是一个JUnit3类,所以Eclipse会这样对待它。 JUnit 4不要求测试类扩展任何东西。
删除它,它应该可以正常工作。
答案 1 :(得分:3)
你不应该从TestCase扩展(使用JUnit的JUnit 3方式),它将起作用。