JUnit — это среда регрессионного тестирования, используемая разработчиками для реализации модульного тестирования в Java, ускорения скорости программирования и повышения качества кода. JUnit Framework может быть легко интегрирован с одним из следующих:
- Затмение
- Муравей
- специалист
Особенности JUnit Test Framework
Тестовый фреймворк JUnit предоставляет следующие важные функции —
- арматура
- Тестовые комплекты
- Тест бегунов
- JUnit классы
арматура
Fixtures — это фиксированное состояние набора объектов, используемых в качестве основы для выполнения тестов. Цель тестового устройства — обеспечить хорошо известную и фиксированную среду, в которой выполняются тесты, чтобы результаты можно было повторять. Включает в себя —
- Метод setUp (), который запускается перед каждым вызовом теста.
- Метод tearDown (), который запускается после каждого метода тестирования.
Давайте проверим один пример —
import junit.framework.*; public class JavaTest extends TestCase { protected int value1, value2; // assigning the values protected void setUp(){ value1 = 3; value2 = 3; } // test method to add two values public void testAdd(){ double result = value1 + value2; assertTrue(result == 6); } }
Test Suites
Набор тестов объединяет несколько примеров модульных тестов и запускает их вместе. В JUnit для запуска тестового набора используются аннотации @RunWith и @Suite. Ниже приведен пример, который использует тестовые классы TestJunit1 & TestJunit2.
import org.junit.runner.RunWith; import org.junit.runners.Suite; //JUnit Suite Test @RunWith(Suite.class) @Suite.SuiteClasses({ TestJunit1.class ,TestJunit2.class }) public class JunitTestSuite { }
import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestJunit1 { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message, messageUtil.printMessage()); } }
import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestJunit2 { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); } }
Тест бегунов
Test Runner используется для выполнения тестовых случаев. Вот пример, который предполагает, что тестовый класс TestJunit уже существует.
import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJunit.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
JUnit Классы
Классы JUnit являются важными классами, используемыми при написании и тестировании JUnits. Некоторые из важных классов —
Assert — Содержит набор методов assert.
TestCase — содержит тестовый набор, который определяет устройство для запуска нескольких тестов.
TestResult — содержит методы для сбора результатов выполнения контрольного примера.