TestNG Assertions
TestNG’de Assertions, test sonuçlarını doğrulamak için kullanılır.
Bir testin beklenen sonuçla gerçek sonuç arasındaki farkı kontrol eder. Eğer assertion başarısız olursa, test FAIL olarak işaretlenir.
🔍 Assertion Nedir?
Section titled “🔍 Assertion Nedir?”Assertion’lar, testin doğruluk noktalarıdır.
Bir değer beklenen ile uyuşmuyorsa, TestNG testin başarısız olduğunu raporlar.
TestNG iki tür assertion sağlar:
- Hard Assertions
- Soft Assertions
🧱 Hard Assertions
Section titled “🧱 Hard Assertions”Hard assertion başarısız olursa, test o noktada durur ve kalan kod yürütülmez.
Örnek:
Section titled “Örnek:”import org.testng.Assert;import org.testng.annotations.Test;
public class HardAssertionTest {
@Test public void testHardAssertion() { String actualTitle = "Google"; String expectedTitle = "Google";
Assert.assertEquals(actualTitle, expectedTitle); System.out.println("Bu satır yalnızca assertion başarılıysa çalışır."); }}Kullanılan Metotlar
Section titled “Kullanılan Metotlar”| Metot | Açıklama |
|---|---|
Assert.assertEquals(actual, expected) | İki değerin eşit olup olmadığını kontrol eder. |
Assert.assertTrue(condition) | Koşulun true olup olmadığını kontrol eder. |
Assert.assertFalse(condition) | Koşulun false olup olmadığını kontrol eder. |
Assert.assertNull(object) | Nesnenin null olup olmadığını kontrol eder. |
Assert.assertNotNull(object) | Nesnenin null OLMADIĞINI kontrol eder. |
Assert.fail(message) | Testi manuel olarak başarısız hale getirir. |
🧩 Soft Assertions
Section titled “🧩 Soft Assertions”Soft assertions, hata oluşsa bile testin devam etmesini sağlar.
Tüm doğrulamalar yapıldıktan sonra assertAll() çağrıldığında hatalar raporlanır.
Örnek:
Section titled “Örnek:”import org.testng.annotations.Test;import org.testng.asserts.SoftAssert;
public class SoftAssertionTest {
@Test public void testSoftAssertions() { SoftAssert softAssert = new SoftAssert();
System.out.println("Test başladı...");
softAssert.assertEquals("Hello", "Hi", "String eşleşmedi!"); softAssert.assertTrue(5 > 10, "Koşul başarısız!"); softAssert.assertNotNull(null, "Nesne null!");
System.out.println("Tüm doğrulamalar yapıldı, assertAll çağrılıyor...");
// Hataları raporla softAssert.assertAll(); }}⚠️ Eğer
assertAll()çağrılmazsa, TestNG hataları raporlamaz
ve test başarılı görünür.
🎯 Hard vs Soft Assertion Karşılaştırması
Section titled “🎯 Hard vs Soft Assertion Karşılaştırması”| Özellik | Hard Assertion | Soft Assertion |
|---|---|---|
| Hata olduğunda | Testi durdurur | Teste devam eder |
| Kullanım sınıfı | org.testng.Assert | org.testng.asserts.SoftAssert |
| Raporlama | Anında | assertAll() ile |
| Kullanım alanı | Kritik kontroller | Birden fazla kontrol yapılan testler |
🧠 En İyi Uygulamalar
Section titled “🧠 En İyi Uygulamalar”- Kritik adımlarda Hard Assertion, doğrulama aşamalarında Soft Assertion kullanın.
assertAll()her zaman testin sonunda çağrılmalıdır.- Assertion mesajlarını anlamlı yazın:
Assert.assertEquals(actual, expected, "Sayfa başlığı beklenen ile uyuşmuyor!");
🧪 Uygulamalı Örnek
Section titled “🧪 Uygulamalı Örnek”import org.testng.Assert;import org.testng.annotations.Test;import org.testng.asserts.SoftAssert;
public class AssertionExample {
@Test public void loginPageTest() { SoftAssert softAssert = new SoftAssert();
String actualTitle = "Dashboard"; String expectedTitle = "Dashboard";
// Hard assertion - başlık kontrolü Assert.assertEquals(actualTitle, expectedTitle, "Başlık hatalı!");
// Soft assertion - diğer kontroller boolean logoGorunuyor = false; softAssert.assertTrue(logoGorunuyor, "Logo görünmüyor!");
String usernameLabel = null; softAssert.assertNotNull(usernameLabel, "Kullanıcı adı etiketi eksik!");
softAssert.assertAll(); }}📚 Özet
Section titled “📚 Özet”- Hard Assertion: Hemen durdurur, kritik kontroller için uygundur.
- Soft Assertion: Tüm doğrulamaları toplar, raporu sonunda sunar.
- assertAll(): Soft assert sonuçlarını bildirmek için zorunludur.
- TestNG assertion’lar, testlerin güvenilirliğini artırır.
🧩 Sonuç:
TestNG Assertions, otomasyon testlerinde test senaryolarının doğruluğunu ve güvenilirliğini sağlamanın temel yapı taşlarından biridir.