TDD (test-driven development)- это техника разработки ПО предусматривающая написание тестов до реализации функционала. Т.е. сначала пишется сигнатура метода, далее пишутся всевозможные тесты, после реализуется тело метода и в процессе реализации, выполняются все тесты.
Самым популярным инструментом разработки является JUnit.
Структура класса теста для JUnit4, с аннтотациями
Код
public class MyJUnitTest extends Assert {
@Before
public static void setUpData() {
// это секция выполняется всегда перед всеми тестами...
}
@After
public static void tearDownData() {
// это секция выполняется всегда последней...
}
@Test
@Test(timeout = 1000)
public void test {
}
}
Все методы класса не должны ничего возвращать и быть публичными public void
Еще часто используемые аннотации @BeforeClass, @AfterClass - по семантике можно понять, что аннотированные методы будут выполняться перед создание и после класса, к этому они должны быть статичны public static void.
Все тестовые методы аннотируется @Test
Для избежания зацикливания и выявления потенциально медленных методов применяется аннотация @Test(timeout = 1000), которая прекращает выполнение метода по истечении указанного времени.
Полезные ссылки:
habrahabr
Видеоурок от Юрия Ткача
Видеоуроки от Ивана Головача
Первый плейлист
Второй плейлист
Третий плейлист
Презентация от Андрея Солнцева про TDD и BDD
Тезисы: Юнит тесты- это спецификация, которая описывает, как должен работать код. И следующий шаг в эволюции это BDD - Behavior Driven development.
Статья на хабре про Mockito