Junit'te Parametreli Test nedir?
Parametreli test, aynı testi farklı değerler kullanarak defalarca yürütmektir. Geliştiricinin yalnızca girdileri ve beklenen sonuçları bakımından farklılık gösteren aynı testi yürütürken zamandan tasarruf etmesine yardımcı olur.
Parametreli test kullanılarak, bazı veri kaynaklarından veri alan bir test yöntemi ayarlanabilir.
Farklı sayıları toplamak için basit bir test düşünün. Kod şöyle görünebilir -
Yukarıdaki yaklaşım çok fazla fazlalığa yol açar.
Basit bir yaklaşıma ihtiyacımız var ve. Parametreli testi kullanarak 10 veri girişi girmek için bir yöntem ekleyebilirsiniz ve testiniz otomatik olarak 10 kez çalışacaktır.
Parametreli JUnit testi oluşturma adımları
Aşağıdaki kod, parametreli test için bir örnek göstermektedir. Aritmetik sınıfının sum () yöntemini test eder:
Adım 1) Bir sınıf oluşturun. Bu örnekte, verilen sayıların toplamını döndürecek olan sum (int, int) yöntemini kullanarak iki sayı gireceğiz.
Adım 2) Parametreli bir test sınıfı oluşturun
Kod Açıklama
- Kod Satırı 11: @runWith (Parameterized.class) kullanarak test sınıfınıza açıklama ekleyin.
- Kod Satırı 13: 'firstNumber' değişkenini private ve yazın int olarak bildirmek.
- Kod Satırı 14: 'secondNumber' değişkeninin özel olarak bildirilmesi ve int olarak yazılması.
- Kod Satırı 15: 'BeklenenResult' değişkenini özel olarak bildirmek ve int olarak yazmak.
- Kod Satırı 16: Değişken 'hava temalı' özel olarak ve tip hava temalı olarak beyan edilir.
@RunWith (class_name.class): @RunWith annotation, çalıştırıcı sınıf adını belirtmek için kullanılır. Parametre olarak herhangi bir tür belirtmezsek, çalışma zamanı varsayılan olarak BlockJunit4ClassRunner'ı seçecektir .
Bu sınıf, testlerin yeni bir test örneğiyle çalıştırılmasından sorumludur. Kurulum (kaynakları ilişkilendirme) ve sökme (kaynakları serbest bırakma) gibi JUnit yaşam döngüsü yöntemlerini çağırmaktan sorumludur.
Parametreleştirmek için @RunWith kullanarak açıklama eklemeniz ve test edilecek .class'ı geçmeniz gerekir.
Adım 3) Test verilerini depolayan bir kurucu oluşturun. 3 değişkeni depolar
Adım 4) Test verilerini oluşturan ve döndüren statik bir yöntem oluşturun.
Kod Satırı 32,33: İki boyutlu bir dizi oluşturma (ekleme için girdi parametreleri sağlar). AsList yöntemini kullanarak verileri List türüne dönüştürüyoruz. Çünkü yöntem girdisinin dönüş türü koleksiyondur.
Kod Satırı 30: Testimizi çalıştırmak için bir dizi giriş verisi oluşturmak için @Parameters ek açıklamasını kullanma .
@Parameters ek açıklaması ile tanımlanan statik yöntem, Koleksiyondaki her girişin testin bir yinelemesi için giriş verileri olacağı bir Koleksiyon döndürür.
Eleneni düşünün
{1,2,3}
Buraya
firstNumber = 1
secondNumber = 2
beklenenResult = 3
Burada, sınıf birden çok kez başlatıldığından, her dizi öğesi birer birer kurucuya aktarılacaktır.
Adım 5) Kodun tamamı
Kod Açıklaması:
- Kod Satırı 25: Kaynakları ayarlamak için @Before annotation kullanma (Airthematic.class burada). @Before ek açıklaması, burada her test senaryosundan önce çalıştırmak için kullanılır. Testin ön koşullarını içerir.
- Kod Satırı 36: Testimizi oluşturmak için @Test ek açıklamasını kullanma.
- Code Line 39: Toplamımızın beklediğimizle eşdeğer olup olmadığını kontrol etmek için bir assert ifadesi oluşturmak.
Adım 6) Parametreli testi çalıştırmak için bir test çalıştırıcı sınıfı oluşturun:
Kod Açıklaması:
- Kod Satırı 8: JUnit testimizi çalıştıracak sınıf testinin ana yöntemini bildirmek.
- Kod Satırı 9: JunitCore.runclasses kullanarak test senaryolarını yürütmek, test sınıfı adını bir parametre olarak alacaktır (Örneğimizde Airthematic.class kullanıyoruz).
- Kod Satırı 11: Sonucun for döngüsü kullanılarak işlenmesi ve başarısız sonucun yazdırılması.
- Kod Satırı 13: Başarılı sonucun yazdırılması.
Çıktı:
Aşağıda verilen hata izi olmadan başarılı testi gösteren çıktı:
İki sayının eklendiğini gösteren konsolda sonucu görün: -
Özet :
Parametreli test, geliştiricinin aynı testi farklı değerler kullanarak defalarca yürütmesini sağlar.
Parametrelendirme sırasında kullanılacak önemli açıklamalar
- @Filmdenkare
- @Parametreler