繁体   English   中英

JUnit:如果类已经扩展了某些内容,如何扩展TestCase?

[英]JUnit: how do you extend TestCase if the class already extends something?

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

public class ExampleTest extends TestCase {

如果该类已经扩展了某些内容,我将如何制作TestCase? 就像我有:

public class ExampleTest extends ArrayList<Whatever> {

您不能:

public class ExampleTest extends ArrayList<Whatever> extends TestCase {

如果我的班级已经扩展了某些内容,我应该如何扩展TestCase? 谢谢。

您似乎正在使用Junit3.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.
    }

}

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

如果您想使用另一类无法静态扩展TestCase的(非静态)助手,则应使用组合而不是继承。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM