Как вы организуете свой TestSuite? - PullRequest
0 голосов
/ 21 ноября 2010

Я пытаюсь использовать 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 (например, операция CRUD в веб-приложении), SecondClass в качестве второго шага того же процесса и т. Д. И т. Д. (В этом тесте FirstClass и SecondClass не взаимодействуют).

Как вы организуете свой TestSuite? Первым или вторым путем? Или по-другому?

EDIT: Я ошибаюсь, потому что я повторяю одно и то же имя класса в примере, ergo это сбивает с толку. Это пример конфигурации:

ЦСИ

|-->{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 в пакете test.AAA

testSuite.add(new TestFirstClass()); 
testSuite.add(new TestSecondClass());
  • второй способ:

TestSuiteBBB (находится в корне каталога тестирования) представляет собой совокупность всех тестов, участвующих в выполнении функционального процесса (пример: отправка запланированного электронного письма администратору веб-сайта электронной коммерции). TestSuiteBBB вызывает методы FirstClass и ThirdClass, и каждый класс не вызывает методы другого класса.

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

JUnit позволяет мне делать обоими способами (я сейчас их кодировал в Eclipse и запускаю): что вы предпочитаете?

PS извините за форматирование структуры пакетов:)

1 Ответ

0 голосов
/ 21 ноября 2010

Извините, я не знаю, действительно ли это отвечает на ваши вопросы, но мне очень трудно понять ваш вопрос.

Обычно у вас есть собственный тестовый каталог в процессе сборки.Если вы используете Eclipse или Netbeans в качестве вашей IDE, у вас будет одна папка для исходного кода (src) и одна папка для тестов.Обычно мы создаем одинаковые имена пакетов как в тесте, так и в папке src.

Большинство цепочек инструментов в значительной степени вынуждают вас использовать этот способ организации тестов таким образом.

...