0

我正在尝试在办公室使用 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?第一种方式还是第二种方式?或者以另一种方式?

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

源代码

|-->{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(放置在测试目录的根目录下)是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对包结构的格式感到抱歉:)

4

1 回答 1

0

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

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

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

于 2010-11-21T14:43:57.390 回答