【问题标题】:How do you organize your TestSuite?你如何组织你的TestSuite?
【发布时间】:2011-05-13 09:24:17
【问题描述】:

我正在尝试在办公室使用 Junit (JVM 1.4):我写了很多类扩展 TestCase,但我没有写任何类扩展 TestSuite。 问题是我不太了解 TestSuite 必须测试什么:

  • 一个包的公共契约(一个包的所有公共类的所有公共方法)。
    示例:

    public class TestPackageAAA extends TestSuite{  
        //...  
        public void testSomething{  
            testSuite.add(new TestFirstClass()); 
            testSuite.add(new TestSecondClass());
        } 
        //... 
    }
    

    FirstClass 和 SecondClass 存在于同一个包 AAA 中。

  • 功能流程,翻译成单类未集成的列表?

    public class TestProcessBBB extends TestSuite{  
        //...  
        public void testSomething{  
            testSuite.add(new TestFirstClass()); 
            testSuite.add(new TestSecondClass());
        } 
        //... 
    }
    

FirstClass 作为名为 BBB 的用户进程的第一步(如 webapp 中的 CRUD 操作),SecondClass 作为同一进程的第二步等(在此测试中,FirstClass 和 SecondClass 不通信)。

您如何组织您的 TestSuite?第一种方式还是第二种方式?还是其他方式?

编辑: 我错了,因为我在示例中重复了相同的类名称,ergo 令人困惑。 这是example的配置:

src

|-->{package} **AAA**

       |--->{class}FirstClass
       |--->{class}SecondClass

|-->{package} **XYZ**

       |-->{class}ThirdClass

测试

{package} **AAA**

       |--->{class}TestFirstClass extends TestCase
       |--->{class}TestSecondClass extends TestCase

|-->{package} **XYZ**

       |-->{class}TestThirdClass extends TestCase
  • 第一种方式:

TestSuiteAAA(放在testing目录的根目录下)是test.AAA包中所有TestCase的组合

testSuite.add(new TestFirstClass()); 
testSuite.add(new TestSecondClass());
  • 第二种方式:

TestSuiteBBB(放置在测试目录的根目录中)是所有参与执行功能流程的TestCase 的组合(例如:为电子商务网站的管理员发送预定的电子邮件)。 TestSuiteBBB 调用 FirstClass 和 ThirdClass 的方法,每个类不调用其他类的方法。

testSuite.add(new TestFirstClass()); 
testSuite.add(new TestThirdClass());

JUnit 允许我以两种方式进行(我现在在 Eclipse 中对它们进行编码并运行):你更喜欢什么?

PS 对包结构的格式表示抱歉:)

【问题讨论】:

    标签: unit-testing testing junit test-suite


    【解决方案1】:

    对不起,我不知道这是否真的回答了你的问题,但我觉得很难理解你的问题。

    通常您在构建过程中会有一个自己的测试目录。如果您使用 Eclipse 或 Netbeans 作为您的 IDE,您将有一个用于源 (src) 的文件夹和一个用于测试的文件夹。我们通常在 test 和 src 文件夹中创建相同的包名。

    大多数工具链几乎都迫使您使用这种方式来组织测试。

    【讨论】:

    • 好的,如果您使用 IDE,这是正确的(这是第一种情况)。我没有经验:您是说这是将任何 TestCase 放入 TestSuite(在包视图中)的唯一方法吗?
    • 不,这取决于您的配置。例如,如果您使用 ANT 构建您的项目,您指定一个 JUnit 目标,并在此目标中指定您的测试。查看这篇文章以获取更多信息:ideoplex.com/id/25/ant-and-junit 您可以根据需要设置程序。但最好有一个名为 test 的文件夹。这也使您能够在部署项目之前删除测试。
    猜你喜欢
    • 2010-10-25
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多