Как заранее определить запущенные последовательности тестовых случаев junit? - PullRequest
14 голосов
/ 07 марта 2011

У меня есть тестовый класс в Java, и есть несколько методов, аннотированных @Test, так или иначе, я хочу, чтобы Junit запускал метод A перед методом B, когда я запускаю все тесты. Это возможно или необходимо?

Ответы [ 5 ]

14 голосов
/ 07 марта 2011

Этот вид зависимости от методов тестирования является плохим дизайном и его следует избегать. Если в одном методе тестирования есть код инициализации, который необходимо выполнить для следующего, его следует включить в метод setUp.

3 голосов
/ 04 апреля 2012

У меня проблема с отчетностью.Если вы ХОТИТЕ / НУЖНО проверить, не прошел ли каждый метод тестирования или не прошел тест, то вы ВИНТ.

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

Если поток тестов в коде зависит от разработчика тестов илиразработчик фреймворка?

Показать тестовый код JUnit 10 java-разработчикам, и я готов поспорить, что большинство из них предположит, что тесты (независимо от чего-либо внешнего) будут выполняться в том порядке, в котором они отображаются вtest class.

Разве это не должно быть поведение JUnit по умолчанию?(Дайте мне возможность сообщать ему порядок вместо того, чтобы JUnit вычислял его "самостоятельно".)

Обновление: 2014-11-18 Более новая версия JUnit поддерживает сортировщики методов

// Это сохраняет тесты в алфавитном порядке @FixMethodOrder (MethodSorters.NAME_ASCENDING)

Я думаю, что вы могли бы создать свой собственный сортировщик методов, если «действительно» хотели бы сделать свой собственный конкретный порядок.

2 голосов
/ 19 ноября 2012

Тесты должны иметь независимый порядок, но иногда мы имеем не то, что хотим.Если у вас большой унаследованный проект с тысячами тестов, и они зависят от порядка их выполнения, у вас возникнет много проблем, когда, например, вы попытаетесь выполнить миграцию на Java 7, поскольку он будет перемешивать все тесты.

Подробнее об этой проблеме вы можете прочитать здесь:

Заказ теста Junit и Java 7

1 голос
/ 07 марта 2011

Если это только два метода, вам нужно будет обернуть его в один модульный тест, который действительно не зависит от порядка.

@Test
public void testInOrder() throws Exception {
    testA(); 
    testB(); 
}
0 голосов
/ 11 июня 2013

используйте следующие настройки для настройки до и после испытаний

@Before
public void setUp() throws MWException {

}

@After
public void tearDown() {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...