JUnit Notasyonları Nelerdir ve Nasıl Kullanılır

Merhaba arkadaşlar, Mobilhanem.com üzerinde Selenium ile Test Otomasyonu Geliştirme serimizin altıncı dersinde JUnit Notasyonları Nelerdir ve Nasıl Kullanılır bunu göreceğiz. Bir önceki dersimizde Selenium WebDriver ile JUnit Test nasıl yazılır onu anlatmaya çalışmıştık. Bu dersimizde ise JUnit notasyonlarının ne anlama geldiğini ve ne için kullanılacağını anlamış olacağız.

JUnit Notasyonları Nelerdir ?

  1. @BeforeClass
  2. @AfterClass
  3. @Before
  4. @After
  5. @Test
  6. @Ignore olmak üzere altıya ayırabiliriz.

@BeforeClass

Bütün testler başlamadan önce çalışacak metottur. Örneğin, veritabanı bağlantısı bu sınıfta gerçekleştirilir.

@AfterClass

Bütün testler bittikten sonra çalışacak metottur. Yukarıda bahsetmiş olduğumuz veritabanı bağlantı işlemi @BeforeClass notasyonu ile başlatılırken veritabanı bağlantısını sonlandırma işlemi ise burada gerçekleştirilmektedir.

@BeforeClass
public static void testBeforeClass (){
  System.out.println("@testBeforeClass: Önce çalışır.");
}
  
@AfterClass
public static void testAfterClass(){
  System.out.println("@AfterClass: Sonra çalışır");
}

@Before

Before notasyonu da test adımlarından önce başlamaktadır. Veri okuması ve testin öncesinde yapılması gereken işlemler test adımlarını hızlandırmak için yani zamandan tasarruf etmek için bu metot da tanımlanır. Model ve nesnelerine atama işlemlerinin burada gerçekleştiririz. Bir önceki dersimizde Before notasyonun içerisinde WebDriver tanımlarını ve model atamalarını burada gerçekleştirdik. Örnek olarak aşağıdaki tanımlamaya bakabilirsiniz.

   @Before
    public void setUp() throws Exception {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\aybukeka\\Desktop\\chromedriver.exe");
        driver = new ChromeDriver();
        baseUrl = "https://test.mobilhanem.com.tr/registration/";


//Driver elementlere erişim için 10 sn bekleme süresi tanınır
        driver.manage().timeouts().implicitlyWait(10, SECONDS);
//Sayfaların beklenmesi için süre aşağıdaki gibi tanınır
        driver.manage().timeouts().pageLoadTimeout(200, SECONDS);

        elementPage = new Elements(driver);
    }

@After

After notasyonu ise test metodlarından sonra çalışmaktadır. After notasyonun da en çok yapılan işlem, test metodlarından sonra her seferinde atanan değerlere null değerler gönderilmektedir.

@Before
public void testBefore(){
  System.out.println("@Before: Test metotlarından önce çalışır.");
}
  
@After
public void testAfer(){
  System.out.println("@After: Test metotlarından sonra çalışır.");
}

@Before ve @After notasyonları her test metodundan sonra çalışabilirken @BeforeClass ve @AfterClass bir kere çalışmaktadır.

@Test

Test notasyonu içerisinde test case’mizde yer alacak adımları tanımlarız. Bir önceki dersimizde test notasyonunun içerisinde yapmış olduğumuz örnek aşağıda yer almaktadır. Buradan bu notasyonu ne için kullanılacağını anlayabiliriz.

@Test
    public void testUyeol() throws Exception {
        driver.get(baseUrl);
//Yazı alanlarını önce  temizleyip sonra gönderiyoruz
        elementPage.txtUserName().clear();
        elementPage.txtUserName().sendKeys(userName);

        elementPage.txtEmail().clear();
        elementPage.txtEmail().sendKeys(email);

        elementPage.txtConfirmEmail().clear();
        elementPage.txtConfirmEmail().sendKeys(confirmEmail);

        elementPage.txtPassword().clear();
        elementPage.txtPassword().sendKeys(userPassword);

        elementPage.txtConfirmPassword().clear();
        elementPage.txtConfirmPassword().sendKeys(confirmPassword);

        elementPage.btnUyeOl().click();
    }

Aynı zamanda bu notasyon örneklerini Katolon IDE kullanarak test adımlarını record ettikten sonra export kısmında da görebiliriz. Katalon IDE kullanarak notasyonlarımızı görelim.

public class Notasyon {
  private WebDriver driver;
  private String baseUrl;
  private boolean acceptNextAlert = true;
  private StringBuffer verificationErrors = new StringBuffer();

  @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "https://www.katalon.com/";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testNotasyon() throws Exception {
    driver.get("https://test.mobilhanem.com.tr/");
    driver.findElement(By.linkText("Bize ulaşın")).click();
    driver.findElement(By.linkText("Blog")).click();
    driver.findElement(By.linkText("Hakkımızda")).click();
    driver.findElement(By.linkText("Örnek sayfa")).click();
    driver.findElement(By.linkText("Registration")).click();
    driver.findElement(By.linkText("Search")).click();
    driver.findElement(By.name("s")).clear();
    driver.findElement(By.name("s")).sendKeys("a");
    driver.findElement(By.linkText("Search")).click();
  }

  @After
  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);
    }
  }

@Ignore

Yazdığımız test metotlarının çalıştırılmasını istemiyorsak bu amaç ile kullanabileceğimiz bir notasyondur. @Ignore notasyonunu ilgili test metodundan önce tanımlamamız yeterli olacaktır.

Yukarıda yer alan görselde test notasyonlarının hangi sırada işlendiğini görebilirsiniz.

Mobilhanem.com da Selenium ile Test Otomasyonu Geliştirme serisinin bu dersinde  JUnit Notasyonları Nelerdir ve Nasıl Kullanılır adlı dersimizin sonuna geldik. Eksik ya da yanlış gördüğünüz veya anlamadığınız yerler için çekinmeden ulaşabilirsiniz. Bir sonraki yazıda görüşmek üzere.

Tüm Selenium derslerimiz için tıklayınız.

8

Sevde Aybüke Kaleli

DevOps Engineer at Evam, M.Sc.

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?