Daha önceki iki JUnit yazımın ilkinde basit bir test sınıfı, ikincisinde ise birkaç test sınıfını bir arada çalıştıracak bir suite yapısını görmüştük. Şimdi ise sıra geldi bir testin farklı parametrelerle ardışık ve otomatik olarak JUnit tarafından çağrılmasına. Yani elimizde var olan parametre seti için tek tek test caseler tanımlamak yerine bunu otomatik hale getirip, bu işi bizim için JUnit’ in yapmasını istiyoruz. Hemen örnek kodumuza bakalım.
package com.farukbozan.jfr.junit;import java.util.ArrayList; private static Parameter instance = null; public ParameterTest(int expected, int value1, int value2) { @Parameters @BeforeClass @AfterClass @Before @After @Test } |
Her zaman olduğu gibi detaylara girelim. Öncelikle basit bir add metodu testi yapıyoruz ve elimizde üç tane parametre seti var. Amacımız her bir parametre seti için tek tek test çalıştırmak.
@RunWith(Parameterized.class)
belirteci önemli; çünkü bu test sınıfının parametrik olarak çalıştırılacak bir sınıf olduğunu belirtiyor. Kullanacağımız değişkenleri sınıf değişkeni olarak tanımlıyoruz.
@Parameters
belirteci ise test için kullanılacak parametre setinin döndürecek metodu belirtiyor. Böylece JUnit bu Collection’ dan dönen her set için, test çalıştıracaktır. Dikkat edilmesi gereken nokta setteki parametre sayısı ve tipi ile constructor üzerindeki parametre sayısı ve tipi aynı olmalıdır. Sonuç olarak baktığınızda ise iki test case başarılı bir tanesi ise başarısız olacaktır.
Bol Java’ lı günler dileğiyle…
Yazan: Faruk BOZAN