JUnit - กรอบการทดสอบ

JUnit คือไฟล์ Regression Testing Frameworkใช้โดยนักพัฒนาเพื่อใช้การทดสอบหน่วยใน Java และเร่งความเร็วในการเขียนโปรแกรมและเพิ่มคุณภาพของโค้ด JUnit Framework สามารถรวมเข้ากับสิ่งต่อไปนี้ได้อย่างง่ายดาย -

  • Eclipse
  • Ant
  • Maven

คุณสมบัติของ JUnit Test Framework

กรอบการทดสอบ JUnit มีคุณสมบัติที่สำคัญดังต่อไปนี้ -

  • Fixtures
  • ชุดทดสอบ
  • ทดสอบนักวิ่ง
  • ชั้นเรียน JUnit

การแข่งขัน

Fixturesเป็นสถานะคงที่ของชุดของวัตถุที่ใช้เป็นพื้นฐานสำหรับการเรียกใช้การทดสอบ จุดประสงค์ของอุปกรณ์ทดสอบคือเพื่อให้แน่ใจว่ามีสภาพแวดล้อมที่เป็นที่รู้จักและคงที่ซึ่งการทดสอบถูกเรียกใช้เพื่อให้ผลลัพธ์สามารถทำซ้ำได้ ประกอบด้วย -

  • setUp () วิธีการซึ่งทำงานก่อนการเรียกใช้การทดสอบทุกครั้ง
  • tearDown () ซึ่งทำงานหลังจากทุกวิธีการทดสอบ

มาดูตัวอย่างกัน -

import junit.framework.*;

public class JavaTest extends TestCase {
   protected int value1, value2;
   
   // assigning the values
   protected void setUp(){
      value1 = 3;
      value2 = 3;
   }

   // test method to add two values
   public void testAdd(){
      double result = value1 + value2;
      assertTrue(result == 6);
   }
}

ชุดทดสอบ

ชุดทดสอบจะรวมกรณีทดสอบสองสามหน่วยและรันเข้าด้วยกัน ใน JUnit จะใช้ทั้งคำอธิบายประกอบ @RunWith และ @Suite เพื่อรันการทดสอบชุดโปรแกรม ให้ด้านล่างเป็นตัวอย่างที่ใช้คลาสทดสอบ TestJunit1 และ TestJunit2

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

//JUnit Suite Test
@RunWith(Suite.class)

@Suite.SuiteClasses({ 
   TestJunit1.class ,TestJunit2.class
})

public class JunitTestSuite {
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit1 {

   String message = "Robert";	
   MessageUtil messageUtil = new MessageUtil(message);
   
   @Test
   public void testPrintMessage() {	
      System.out.println("Inside testPrintMessage()");    
      assertEquals(message, messageUtil.printMessage());     
   }
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit2 {

   String message = "Robert";	
   MessageUtil messageUtil = new MessageUtil(message);
 
   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Robert";
      assertEquals(message,messageUtil.salutationMessage());
   }
}

ทดสอบนักวิ่ง

นักวิ่งทดสอบใช้สำหรับดำเนินการกรณีทดสอบ นี่คือตัวอย่างที่ถือว่าคลาสทดสอบTestJunit มีอยู่แล้ว.

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(TestJunit.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}

JUnit Classes

คลาส JUnit เป็นคลาสที่สำคัญซึ่งใช้ในการเขียนและทดสอบ JUnits บางส่วนของชั้นเรียนที่สำคัญ ได้แก่ -

  • Assert - ประกอบด้วยชุดวิธีการยืนยัน

  • TestCase - มีกรณีทดสอบที่กำหนดฟิกซ์เจอร์เพื่อเรียกใช้การทดสอบหลายครั้ง

  • TestResult - มีวิธีการรวบรวมผลลัพธ์ของการดำเนินการกรณีทดสอบ