Junit Suite Tests, в фазах: все @Before, затем все @test, то все @after

StackOverflow https://stackoverflow.com/questions/3520099

  •  29-09-2019
  •  | 
  •  

Вопрос

Я хотел бы, чтобы Junit Runner, который выполняет все методы @Before, затем все методы @test, затем все методы @after.

Вот как мои системные испытания работают. Методы @beforf запускаются, для настройки тестовых данных и сценариев. Приложение запускается. Тогда методы @test работают с приложением, работающим на заднем плане. Эти методы @test могут изменить данные или отвечать на приложение. Затем каркас ждет приложения для завершения. После этого методы @After управляются для проверки результатов теста.

Я уже использую аннотации Junit, методы утверждения и другие различные биты. Но я просто не могу выяснить, как использовать Junits Runners, чтобы выполнить методы испытаний таким образом. Я не мог сделать головы ни хвосты из интерфейса «Компьютер» в Junit 4.8 или выяснить, как применять правила к этому.

Это было полезно?

Решение

Это не то, что делает JUNIT. Junit имеет философию дизайна, которая подчеркивает независимые модульные тесты. Таким образом, это не естественная рамка для системных тестов. То, что вы хотите, чтобы приятно вписываться в Testng (который в качестве целей дизайна пытается стереть как единичные, так и системные тесты).

В Junit @before и @after бежит до и после каждый контрольная работа. Вы можете понять эту вещь в JUNIT, используя набор, который ссылается на все ваши тесты и отвечает за все настройки и разрыв, поэтому методы Suite @BeforeClass и @afterclass получают пробежку до и после Suite, который если вы организуете это Правильно может быть все ваши системные тесты.

В Кодексе существует много организационных задач, когда он становится большим с подходом JUnit, поэтому я предложил бы вам рассмотреть и альтернативные рамки, если это основная часть того, что вы хотите сделать.

Другие советы

Я думаю, что вы можете решить это, сделав только один фактический метод теста, что только звонки - это ваши фактические тесты, которые вы не заявляете как SSUCH.

Вроде:

@Before
public void beforeTest(){}

@After
public void afterTest(){}

@Test
public void test(){
    test1();
    test2();
    test3();
}

public void test1(){}

public void test2(){}

public void test3(){}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top