Test-Driven Development (TDD)
TDD testlərin həqiqi koddan əvvəl yazıldığı inkişaf yanaşmasıdır.
TDD Dövrü
- Qırmızı: Uğursuz test yazın
- Yaşıl: Testi keçmək üçün minimal kod yazın
- Refaktor: Testləri yaşıl saxlayarkən kodu təkmilləşdirin
Nümunə: JUnit ilə TDD
Koda bax
// Step 1: Write failing test
@Test
void shouldCalculateSum() {
Calculator calculator = new Calculator();
assertEquals(8, calculator.add(3, 5));
}
// Step 2: Write minimal implementation
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
// Step 3: Refactor if needed
public class Calculator {
public int add(int a, int b) {
validateInputs(a, b);
return a + b;
}
private void validateInputs(int a, int b) {
if (a < 0 || b < 0) {
throw new IllegalArgumentException("Negative numbers not allowed");
}
}
}
Faydalar
- Daha yaxşı dizayn: Testlərin əvvəl yazılması daha yaxşı API dizaynına gətirib çıxarır
- Yüksək əhatə: Kod yalnız testləri təmin etmək üçün yazılır
- Daha sürətli geri əlaqə: Problemlər dərhal tutulur
- Sənədləşdirmə: Testlər canlı sənədləşdirmə kimi xidmət edir
Ən Yaxşı Təcrübələr
- Sadə testlərlə başlayın
- Yalnız keçmək üçün kifayət qədər kod yazın
- Müntəzəm refaktor edin
- Testləri müstəqil saxlayın
- Təsviri test adları istifadə edin