Eclipse中测试用例的命名约定

时间:2014-01-30 19:34:41

标签: java eclipse unit-testing junit

我遇到了Eclipse Kepler Service Release 1中最奇怪的问题。我设置了一个类,通过扩展junit.framework.TestCase来实现一些测试用例,如下所示:

import junit.framework.TestCase;

public class PublicTests extends TestCase {

    @Override
    public void setUp(){
        ...
    }

然后我添加了一些public void测试用例方法,其所有名称都以前缀test开头。例如,testBasicAdd。然后,我添加了另一个名为public void的{​​{1}}测试用例方法,当我运行所有测试用例时,该特定的测试用例甚至都没有被识别为测试用例,因此无法运行。我通过删除所有其他方法确保它实际上没有被识别为测试用例,从而创建stressTestForAdd()的实例,TestCase作为唯一的测试用例,当我重新运行套件时收到一个整洁的stressTestForAdd说我没有在我的文件中创建任何测试用例。当我向我的方法添加前缀AssertionError时,创建了一个笨拙的名称test,该测试用例被识别出来。

我没有遇到过需要在相关文献中的任何地方的jUnit测试用例中使用testStressTestForAdd前缀,甚至不是约定。这可能是Eclipse的错误吗?任何人都可以解释一下吗?

1 个答案:

答案 0 :(得分:4)

在JUnit的早期版本中,例如JUnit 3,只要方法名称以test

开头,方法就作为测试执行

e.g。

 public void testGetName()

在JUnit 4中,引入了对注释的支持,因此在JUnit 4中,只要您使用@Test

对其进行注释,就可以将测试方法命名为您想要的任何名称。

e.g。

@Test
public void getName()