JUnit’e Giriş

Java'da Teste Giriş

Maria Milusheva

Senior Software Engineer

Hızlı bilgiler

  • JUnit en popüler Java test kütüphanesidir
  • İyi bakımı yapılır ve sürekli güncellenir

JUnit 5 logosunun bir görseli.

Java'da Teste Giriş

Bir JUnit testi yazma

addTwoNumbers() yöntemi için bir test yazalım:

public int addTwoNumbers(int a, int b) {
    return a + b;
}
Java'da Teste Giriş

JUnit @Test anotasyonu

  • JUnit’i bir IDE veya derleme aracıyla kurun (örnek için alıntıya bakın)

  • Her test @Test anotasyonuna sahip olmalıdır:

import org.junit.jupiter.api.Test;

@Test 
// Test yöntemi burada olacak

Anotasyon - derleyici ve çerçevelerin yöntemi nasıl işleyeceğini belirten özel üst veridir. Anotasyonlar @ ile başlar

1 https://www.jetbrains.com/help/idea/junit.html
Java'da Teste Giriş

JUnit test yapısı

import org.junit.jupiter.api.Test;

@Test 

void testAddTwoNumbers() {
// Arrange - Given int num1 = 2; int num2 = 2;
// Act - When int actual = addTwoNumbers(num1, num2);
// Assert - Then assertEquals(4, actual); }
Java'da Teste Giriş

Assert ifadeleri

  • Gerçek sonuçları beklenen sonuçlarla hızlıca karşılaştırır
  • Beklenen ile gerçek uyuşmazsa test başarısız olur
  • Hataları ve bug’ları hızla yakalar

Assert ifadesini gösteren grafikler

Java'da Teste Giriş

Test sonuçları

Şu iddiayı düşünün:

assertEquals(4, actual); // actual == 4 ise başarılı

Başarılı olursa Test passed mesajı üretir

Değerler eşit değilse, ör. actual = 5:

org.opentest4j.AssertionFailedError: expected: <4> but was: <5>

Argüman sırasını unutmayın! JUnit’te ilk argüman beklenendir.

Java'da Teste Giriş

Taşma için ek test

@Test 

void testAddTwoNumbers() { // Given int num1 = 2147483647; int num2 = 1; // When int actual = addTwoNumbers(num1, num2); // Then assertEquals(-2147483648, actual); }
Java'da Teste Giriş

JUnit ve test notları

  • Bir testte birden çok assertion olabilir
  • Testin geçmesi için tüm assertion’lar başarılı olmalıdır
  • Tüm assertion’ları şöyle içe aktarabiliriz:
import org.junit.jupiter.api.Assertions.*;
Java'da Teste Giriş

Diğer notlar

  • Aşağıdaki, IDE’de gerekmeyen özel bir Datacamp aracıdır:
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method ifadesi, package.Class.method yazmadan methodu doğrudan kullanmayı sağlar
import static java.lang.Math.max;

...

max(3,5); // Math.max(3, 5) yerine
Java'da Teste Giriş

Hadi pratik yapalım!

Java'da Teste Giriş

Preparing Video For Download...