[英]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.