-1

我正在尝试为项目制作一些 JUnit 测试类。我一直遵循以下格式:

public class ExampleTest extends TestCase {

如果该类已经扩展了某些东西,我将如何制作一个 TestCase?就像我有:

public class ExampleTest extends ArrayList<Whatever> {

你不能这样做:

public class ExampleTest extends ArrayList<Whatever> extends TestCase {

?

如果我的类已经扩展了某些东西,我应该如何扩展 TestCase?谢谢。

4

2 回答 2

3

您似乎正在使用 Junit 3.x。从Junit 4.0开始,您的测试用例类不需要扩展TestCase。它只需要根据需要使用@Test, @Before, @After,@BeforeClass等注释方法@AfterClass。这将允许您的测试用例类扩展一些其他类。

在我们的项目中,我们使用 Spring 测试运行器运行 JUnit 测试,并且需要将几个注释与每个测试用例相关联。我们通过定义一个抽象测试用例来解决这个问题,将注释与这个抽象测试用例相关联,并使每个其他测试用例扩展它。

@RunWith(SpringJunit4TestRunner.class)
@ContextConfiguration(location={})
public class AbstractTestCase
{

}


public class ConcreteTestCase extends AbstractTestCase
{
    @Before
    public void setUp()
    {
        // Some set up before each test.
    }

    @Test
    public void test1()
    {
        // Some test
    }

    @Test
    public void test2()
    {
        // Some other test
    }

    @After
    public void tearDown()
    {
        // Some tear down process after each test.
    }

}
于 2013-04-04T01:57:39.767 回答
0

你的测试类应该只是一个测试类,而不是别的东西。有充分的理由希望 Java 具有多重继承,但这不是其中之一。TestCase如果您有想要集中的通用测试逻辑,则任何抽象基类本身都应该扩展。

如果您希望使用另一类(非静态)助手,但它本身不能扩展TestCase,您应该使用组合而不是继承。

于 2018-07-29T19:15:37.647 回答