你如何组织你的TestSuite?

时间:2010-11-21 13:34:40

标签: unit-testing testing junit test-suite

我正在尝试在办公室使用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不进行通信)。 / p>

您如何组织TestSuite?在第一种方式还是第二种方式?或者以另一种方式?

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

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(放置在测试目录的根目录中)是包测试中所有TestCase的组合.AAA

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

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

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

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

PS对于包结构的格式化抱歉:)

1 个答案:

答案 0 :(得分:0)

抱歉,我不知道这是否真的能回答你的问题,但我发现很难理解你的问题。

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

大多数工具链都会迫使您以这种方式组织测试。