Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 您如何组织您的测试套件?_Unit Testing_Testing_Junit_Test Suite - Fatal编程技术网

Unit testing 您如何组织您的测试套件?

Unit testing 您如何组织您的测试套件?,unit-testing,testing,junit,test-suite,Unit Testing,Testing,Junit,Test Suite,我试图在office中使用Junit(JVM1.4):我编写了很多类扩展TestCase,但没有编写任何类扩展TestSuite。 问题是我不太清楚测试套件必须测试什么: 包的公共契约(包的所有公共类的所有公共方法)。 例如: 一级和二级存在于同一个包AAA中 功能流程,翻译为单个类列表未集成 public class TestProcessBBB extends TestSuite{ //... public void testSomething{

我试图在office中使用Junit(JVM1.4):我编写了很多类扩展TestCase,但没有编写任何类扩展TestSuite。 问题是我不太清楚测试套件必须测试什么:

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

    一级和二级存在于同一个包AAA中

  • 功能流程,翻译为单个类列表未集成

    public class TestProcessBBB extends TestSuite{  
        //...  
        public void testSomething{  
            testSuite.add(new TestFirstClass()); 
            testSuite.add(new TestSecondClass());
        } 
        //... 
    }
    
FirstClass作为名为BBB的用户进程的第一步(如webapp中的CRUD操作),SecondClass作为同一进程的第二步等(在本测试中,FirstClass和SecondClass不通信)

您如何组织您的测试套件?第一种方式还是第二种方式?还是以另一种方式

编辑: 我错了,因为我在示例中重复了相同的类名,因此很混乱。 以下是示例的配置:

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(位于测试目录的根目录中)是包test.AAA中所有测试用例的组合

testSuite.add(new TestFirstClass()); 
testSuite.add(new TestSecondClass());
  • 第二种方式:
TestSuiteBB(放在测试目录的根目录中)是所有参与执行功能流程的测试用例的组合(例如:为电子商务网站的管理员发送预定电子邮件)。 TestSuiteBB调用FirstClass和ThirdClass的方法,每个类不调用另一个类的方法

testSuite.add(new TestFirstClass()); 
testSuite.add(new TestThirdClass());
JUnit允许我以两种方式进行(我现在在Eclipse中对它们进行编码并运行):您更喜欢什么


PS对于软件包结构的格式设置很抱歉:)

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

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


大多数工具链都会强制您使用这种方式来组织测试。

好的,如果您使用IDE,这是正确的(这是第一种情况)。我没有经验:你说这是将任何测试用例放入测试套件(在包视图中)的唯一方法吗?不,这取决于你的配置。例如,如果您使用ANT构建项目,那么您可以指定JUnit目标,并在该目标中指定测试。更多信息,请参阅本文:您可以按照自己的意愿设置程序。但最好有一个名为test的文件夹。这还允许您在部署项目之前删除测试。
testSuite.add(new TestFirstClass()); 
testSuite.add(new TestThirdClass());