Groovy - Birim Testi

Nesne yönelimli bir sistemin temel birimi sınıftır. Bu nedenle birim testi, bir sınıf içindeki testlerden oluşur. Uygulanan yaklaşım, test edilen sınıfın bir nesnesini oluşturmak ve onu seçilen yöntemlerin beklendiği gibi çalışıp çalışmadığını kontrol etmek için kullanmaktır. Her şeyi test etmek her zaman pratik olmadığı için her yöntem test edilemez. Ancak, kilit ve kritik yöntemler için birim testi yapılmalıdır.

JUnit, Java kodunun otomatik birim testi için kabul edilen endüstri standardı olan açık kaynaklı bir test çerçevesidir. Neyse ki JUnit çerçevesi, Groovy sınıflarını test etmek için kolayca kullanılabilir. Gereken tek şey, standart Groovy ortamının parçası olan GroovyTestCase sınıfını genişletmektir. Groovy test senaryosu sınıfı Junit test senaryosuna dayanmaktadır.

Basit Bir Junit Test Vakası Yazma

Bir uygulama sınıfı dosyasında aşağıdaki sınıfın tanımlandığını varsayalım -

class Example {
   static void main(String[] args) {
      Student mst = new Student();
      mst.name = "Joe";
      mst.ID = 1;
      println(mst.Display())
   } 
} 
 
public class Student {
   String name;
   int ID;
	
   String Display() {
      return name +ID;
   }  
}

Yukarıdaki programın çıktısı aşağıda verilmiştir.

Joe1

Şimdi de Öğrenci sınıfı için bir test senaryosu yazmak istediğimizi varsayalım. Tipik bir test durumu aşağıdaki gibi görünür. Aşağıdaki kodla ilgili olarak aşağıdaki noktalara dikkat edilmesi gerekir -

  • Test durumu sınıfı GroovyTestCase sınıfını genişletir
  • Display yönteminin doğru dizeyi döndürdüğünden emin olmak için assert ifadesini kullanıyoruz.
class StudentTest extends GroovyTestCase {
   void testDisplay() {
      def stud = new Student(name : 'Joe', ID : '1')
      def expected = 'Joe1'
      assertToString(stud.Display(), expected)
   }
}

Harika Test Paketi

Normalde birim testlerin sayısı arttıkça, tüm test durumlarını tek tek yürütmeye devam etmek zorlaşır. Bu nedenle Groovy, tüm test olaylarını tek bir mantıksal birimde toplayabilen bir test paketi oluşturma olanağı sağlar. Aşağıdaki kodlayıcı, bunun nasıl başarılabileceğini göstermektedir. Kod hakkında aşağıdaki hususlara dikkat edilmelidir -

  • GroovyTestSuite, tüm test senaryolarını tek bir teste almak için kullanılır.

  • Aşağıdaki örnekte, biri adında iki test vaka dosyamız olduğunu varsayıyoruz. StudentTest ve diğeri EmployeeTest gerekli tüm testleri içeren.

import groovy.util.GroovyTestSuite 
import junit.framework.Test 
import junit.textui.TestRunner 

class AllTests { 
   static Test suite() { 
      def allTests = new GroovyTestSuite() 
      allTests.addTestSuite(StudentTest.class) 
      allTests.addTestSuite(EmployeeTest.class) 
      return allTests 
   } 
} 

TestRunner.run(AllTests.suite())