Управление порядком выполнения JUnit тестов. Аннотация @FixMethodOrder.

Логотип JUnit
Порядок выполнения JUnit тестов не гарантируется и даже может меняться от запуска к запуску. Однако начиная с JUnit 4.11, порядок запуска тестов по умолчанию детерминирован и определяется хэш-кодом имени тестового метода (в порядке возрастания), в случае равенства хэш-кодов, приоритет отдается согласно лексикографическому порядку сортировки имен.

Для обеспечения контроля за порядком выполнения тестов в JUnit предоставлена аннотация для тестового класса – @FixMethodOrder. В зависимости от параметра этой аннотации можно получить три различных варианта поведения:

  • Детерминированный, основанный на hashcode. Это порядок по умолчанию.
  • В порядке возрастания имени метода
  • Порядок обеспечиваемый JVM. Порядок запуска может меняться от запуска к запуску.

Читать далее Управление порядком выполнения JUnit тестов. Аннотация @FixMethodOrder.

Запуск или игнорирование JUnit-тестов в зависимости от определенных условий

Логотип JUnit

Применение аннотации @Ignore позволяет проигнорировать выполнение помеченного ею теста. Так же этой аннотацией можно пометить весь класс, содержащий тестовые методы, что приведет к игнорированию сразу всех тестов, расположенных в этом классе. Применение аннотации @Ignore главным образом осуществляется в процессе разработки и отладки тестовых или тестируемых классов, для пометки тестов которые не должны выполняться. Параметром аннотации можно указать причину пропуска теста. Пример:

@Ignore(“Тест ещё не реализован!!!”)
@Test
public void testFunct() {
    // ???
}

Однако часто возникает ситуация когда необходимо принять решение выполнять или нет ряд тестов в зависимости от определенных условий, например, в зависимости от числа ядер процессора или операционной системы, под которой выполняются тесты. В таком случае необходимо использовать  «предположения» (assumption), определенные в класс org.junit.Assume. Читать далее Запуск или игнорирование JUnit-тестов в зависимости от определенных условий

Основы JUnit

Логотип JUnit

JUnit – фреймворк для модульного тестирования Java программ, принадлежащий семейству фреймворков xUnit для различных языков программирования (например: CPPUnitC++, JSUnitJavaScript, NUnitC#, PHPUnitPHP). Основная идея модульного тестирования заключается в проверке корректности работы отдельных модулей исходного кода программы, в условиях изолированности тестируемого модуля от других. JUnit играет важнейшую роль в технике разработки через тестирование (test-driven development – TDD), которая заключается в повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, и только затем пишется код, который позволит пройти этот тест.

Будет рассматриваться API версии 4 и выше, которая значительно отличается от версии 3.8. В обзоре раскрываются основы написания простейших JUnit тестов, приводится типовой набор утверждений (assert-ов) и правила определения фикстур (fixtures). Умышлено  не приводятся описание работы с  runner-ом, параметризованного тесстирования, ruler`s, различных подходов к работе с исключениями и другие возможности (так сказать вариант для чайников). Читать далее Основы JUnit