JUnit Assertions Sınıfı, birim testleri yapmanıza izin veren bir statik yöntemler koleksiyonu içerir. İddialar, JUnit’in temel özelliklerinden biridir. Bu sınıfın elliden fazla farklı yöntemi vardır. Bazı Assertions sınıfı testleri, bir koşul doğruysa başarısız olurken diğerleri bir koşul yanlışsa başarısız olur.

JUnit Testlerinizde Onaylamaları Nasıl Kullanacağınızı Öğrenin

Assertions sınıfı ayrıca birçok aşırı yüklenmiş yönteme sahiptir. Her iddia yönteminin en az iki aşırı yüklenmiş yöntemi vardır. Daha popüler Assertions sınıf yöntemlerinden bazılarını keşfedin ve bunları birim testleri gerçekleştirmek için nasıl kullanacağınızı öğrenin.

JUnit 5 iddiaEquals yönteminin ondan fazla varyasyonu vardır. Bu yöntem, daha popüler olan Assertions sınıf yöntemlerinden biridir. AssertEquals yönteminin bir varyasyonu, beklenen bir değeri ve değerlendirmek istediğiniz işlevi (gerçek değer) alır. İkinci bir ana varyant, ek bir üçüncü argüman alır. Bu, JUnit birim testi başarısız olursa görüntülenecek bir hata mesajıdır .

AssertEquals yönteminin aşırı yüklenmesi, farklı veri türleri ile gerçekleşir. Bazı AssertEquals aşırı yükleme yöntemleri, delta adı verilen dördüncü bir argüman alır. Diğer sürümler, başarısızlık dizesini lambda ifadesi biçiminde bir Tedarikçi işlevsel arabirimiyle değiştirir .

AssertionsMethods Java Sınıfı

package com.program;

public class AssertionsMethods {

public static int square(int num) {

return num * num;

}

}

Yukarıdaki AssertionsMethods Java sınıfı, kare adı verilen tek bir yönteme sahiptir. square yöntemi bir tamsayı değeri alır ve karesini döndürür. Square yöntemini ve AssertionsMethods sınıfından gelecekteki herhangi bir yöntemi test etmek için bir JUnit test durumu oluşturmanız gerekir.

AssertionsMethodsTest JUnit Test Senaryosu

package com.program;

import static org.junit.Assert.assertEquals;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class AssertionsMethodsTest {

@Test

void testSquare() {

assertEquals(25, AssertionMethods.square(5));

assertEquals(36, AssertionMethods.square(6), “Your square values did not match.”);

assertEquals(49, AssertionMethods.square(7), () -> “Your square values did not match.”);

}

}

testSquare() yöntemi, square() yöntemini test etmek için assertEquals()’ın üç varyasyonunu kullanır. Beklenen tüm değerler square() yöntemi tarafından döndürülen gerçek değerlerle eşleştiğinden, her bir iddiaEquals() başarılıdır.

AssertNull Yöntemi

JUnit Assertions sınıfının tam olarak üç assertNull yöntemi vardır. Bu yöntemlerin her biri, bir veya daha fazla argüman alır ve verilen nesnenin boş olup olmadığını iddia eder. Belirli bir nesne boş değilse, test başarısız olur.

@Test

public void testStringValue() {

String stringValue = null;

assertNull(stringValue);

assertNull(stringValue, “Your string value is not null”);

assertNull(stringValue, () -> “Your string value is not null”);

}

İlk iddiaNull() yöntemi bir dize nesnesi alır ve bunun boş olup olmadığını kontrol eder. İkinci AssertNull() yöntemi, test başarısız olursa görüntülenecek bir dize nesnesi ve bir dize mesajı alır. Üçüncü ve son commitNull() yöntemi, değerlendirmek istediğiniz nesneyi ve bir Tedarikçi işlevsel arabirimini alır.

Yukarıdaki test örneğinde, Tedarikçi arayüzü bir lambda ifadesi için bir atama hedefi görevi görür. Test başarısız olursa lambda ifadesi bir hata mesajı oluşturur.

AssertTrue Yöntemi

AssertTrue() yönteminin altı varyasyonu vardır. Her yöntem, verilen bir koşulun doğru olup olmadığını iddia eder. Bir iddiaTrue() koşulu yanlışsa test başarısız olur.

@Test

void testEvenNumbers() {

int num1 = 10;

int num2 = 16;

int num3 = 26;

assertTrue(num1 < num2);

assertTrue(num3 > num2, “Your condition is not true.”);

assertTrue(num1 < num3, () -> ” Your condition is not true.”);

assertTrue(() -> num1%2 == 0);

assertTrue(() -> num2%2 == 0, “Your value is not an even number.”);

assertTrue(() -> num3%2 == 0, () -> “Your value is not an even number.”);

}

testEvenNumbers() yöntemi, altı AssertTrue() yönteminin tamamının nasıl kullanılacağını gösterir. Yukarıdaki tüm yöntemler doğrudur, bu nedenle bu birim testi hatasız veya hatasız yürütülür.

iddiaTrue(Boolean koşulu): bu yöntem bir Boole koşulu alır ve doğru olup olmadığını iddia eder. Yukarıdaki koddaki bu yöntemin örneği, birinci tamsayı değerinin ikinciden küçük olup olmadığını gösterir.

iddiaTrue(Boolean koşulu, String mesajı): bu yöntem, test edilecek bir Boole koşulu ve yanlışsa görüntülenecek bir dize alır.

iddiaTrue(Boolean koşulu, Tedarikçi <String> messageSupplier): bu yöntem, bir lambda ifadesi olarak bir Boolean ve bir Tedarikçi işlevsel arabirimi alır. Mesaj tedarikçisi, Boole koşulu yanlışsa görüntülenecek bir dize içerir.

iddiaTrue(BooleanSupplier booleanSupplier): bu yöntem, doğru veya yanlış olarak değerlendirilen bir lambda ifadesi biçiminde bir BooleanSupplier işlevsel arabirimi alır. Koddaki bu yöntemin örneği bir lambda ifadesi kullanır. Çift mi yoksa tek mi olduğunu belirlemek için ikiye bölünen ilk tam sayının kalanını test eder.

iddiaTrue(BooleanSupplier booleanSupplier, String mesajı): bu yöntem, bir lambda ifadesi biçiminde bir BooleanSupplier işlevsel arabirimi alır. Ayrıca, BooleanSupier doğru değilse, yazdırılması için bir dize mesajı gerekir.

iddiaTrue(BooleanSupplier booleanSupplier, Supplier <String> messageSupplier): bu yöntem, doğrulamak için bir BooleanSupplier işlevsel arabirimi alır. Ayrıca, test başarısız olursa bir dize değeri yazdıracak bir lambda ifadesi olan bir Tedarikçi işlevsel arabirimi alır.

AssertFalse Yöntemi

AssertFalse() yöntemi, assertTrue() yönteminin tersidir. Bu yöntem, yanlış olup olmadığını görmek için belirli bir koşulu değerlendirir. Belirli bir koşul doğruysa, o zaman iddiaFalse() testi başarısız olur. iddiaFalse() yöntemi ayrıca, iddiaTrue() karşılıklarıyla aynı bağımsız değişkenleri kabul eden altı varyasyona sahiptir.

@Test

void testNotEvenNumbers() {

int num1 = 11;

int num2 = 17;

int num3 = 27;

assertFalse(num2 < num1);

assertFalse(num2 > num3, ” Your condition is not false.”);

assertFalse(num3 < num1, () -> ” Your condition is not false.”);

assertFalse(() -> num1%2 == 0);

assertFalse(() -> num2%2 == 0, “Your value is an even number.”);

assertFalse(() -> num3%2 == 0, () -> “Your value is an even number.”);

}

testNotEvenNumbers() yöntemindeki altı iddiaFalse() yönteminin tümü yanlışla sonuçlanır, bu da iddiaFalse() testlerinin başarılı olduğu anlamına gelir.

Birim Testinin Faydaları

Birim testi, yazılım geliştirme sürecinin ayrılmaz bir parçasıdır. Büyük yazılım projeleri, üzerlerinde çalışan ekiplerden geliştirme yaklaşımlarına kadar çeşitli nedenlerle başarısız olur.

Birim testinin amacı, erken hata tespiti sağlayarak yazılım arızasını ortadan kaldırmaktır. Bu, ekiplerin net spesifikasyonlar geliştirmesini, hata dokümantasyonu yoluyla yazılım tasarımını geliştirmesini ve yazılım bakımı için destek sağlamasını gerektirir.

Birim testi, geliştirme yaşam döngünüzde uygulamanız gereken tek yazılım testi yaklaşımı değildir, başlamak için çok iyi bir yerdir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir