JUnit @ ละเว้นคำอธิบายประกอบการทดสอบพร้อมตัวอย่าง

บางครั้งคุณอาจไม่ต้องการดำเนินการเมธอด/โค้ดหรือ กรณีทดสอบ เพราะการเขียนโค้ดยังทำไม่เต็มที่ สำหรับการทดสอบเฉพาะนั้น JUnit ให้ @ไม่สนใจ คำอธิบายประกอบเพื่อข้ามการทดสอบ

ความหมายของ JUnit @ ละเว้นคำอธิบายประกอบการทดสอบ

คำอธิบายประกอบการทดสอบ @Ignore ใช้เพื่อละเว้นการทดสอบเฉพาะหรือกลุ่มการทดสอบเพื่อข้ามความล้มเหลวของบิลด์

@ไม่สนใจ คำอธิบายประกอบสามารถใช้ได้ในสองสถานการณ์ตามที่ระบุด้านล่าง:

  1. หากคุณต้องการละเว้นวิธีทดสอบ ให้ใช้ @Ignore ร่วมกับคำอธิบายประกอบ @Test
  2. หากคุณต้องการละเว้นการทดสอบทั้งหมดของคลาส ให้ใช้คำอธิบายประกอบ @Ignore ในระดับชั้นเรียน

คุณสามารถระบุเหตุผลในการปิดใช้งานการทดสอบได้ในพารามิเตอร์ทางเลือกที่จัดทำโดยคำอธิบายประกอบ @Ignore

มันจะช่วยให้นักพัฒนาคนอื่น ๆ ที่ทำงานบนโค้ดชิ้นเดียวกันเข้าใจ "เหตุใดการทดสอบใดการทดสอบหนึ่งจึงถูกปิดใช้งาน" เมื่อปัญหาของการทดสอบนั้นได้รับการแก้ไขแล้ว คุณสามารถเปิดใช้งานได้โดยการลบออก @ ละเว้นคำอธิบายประกอบ.

ตัวอย่างการทดสอบ Junit – เพิกเฉย

ตามที่กล่าวไว้ในคำจำกัดความข้างต้น คุณสามารถใช้คำอธิบายประกอบ @Ignore เพื่อละเว้นการทดสอบหรือกลุ่มของการทดสอบได้

มาทำความเข้าใจโดยใช้ตัวอย่างง่ายๆ และในสถานการณ์ที่กำหนดด้านล่าง:

  1. การสร้างคลาสการทดสอบอย่างง่ายโดยไม่ต้องละเว้นการทดสอบ
  2. ละเว้นวิธีทดสอบโดยใช้ @Ignore คำอธิบายประกอบ
  3. ละเว้นวิธีทดสอบโดยใช้คำอธิบายประกอบ @Ignore ด้วยเหตุผลที่เหมาะสม
  4. ละเว้นวิธีทดสอบทั้งหมดโดยใช้ @Ignore คำอธิบายประกอบ

การสร้างคลาสการทดสอบอย่างง่ายโดยไม่ต้องละเว้นการทดสอบ

มาสร้างเรื่องง่ายๆ กันดีกว่า Java คลาสที่พิมพ์ข้อความสองประเภท

  • วิธีแรกพิมพ์ข้อความธรรมดาและ
  • วิธีที่สองพิมพ์ข้อความ "สวัสดี"

JUnitMessage.java

package guru99.junit;		

public class JUnitMessage {				

    private String message;					

    public JUnitMessage(String message) {					
        this.message = message;							
    }		
    		
public String printMessage(){		
    		
    System.out.println(message);					
    		
    return message;					
}    		
    		
public String printHiMessage(){		
    		
    message="Hi!"+ message;							
    		
    System.out.println(message);					
    		
    return message;					
}    		
    		
}		

ตัวอย่างการทดสอบ JunitTest.java

มาสร้าง .กันเถอะ JUnit ชั้นเรียนทดสอบเพื่อทดสอบ JUnitMessage.java

ในการนี​​้ JUnit ชั้นเรียนทดสอบ

  • การทดสอบครั้งแรกชื่อ “ทดสอบJUnitMessage()” ทดสอบเมธอด “printMessage()” ของคลาสข้างต้น
  • ในทำนองเดียวกันการทดสอบครั้งที่สองชื่อ "การทดสอบJUnitHiMessage” ทดสอบ “ทดสอบJUnitHiMessage” ของคลาสข้างต้น
package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Test		
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing");					
        assertEquals(message, junitMessage.printMessage());					

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message="Hi!" +message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					

    }		
}		

TestRunner.java

มาสร้างคลาสตัวเรียกใช้การทดสอบเพื่อเรียกใช้ JunitTestExample.java กัน

package guru99.junit;		

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(JunitTestExample.class);				
			for (Failure failure : result.getFailures()) {							
         System.out.println(failure.toString());					
      }		
      System.out.println("Result=="+result.wasSuccessful());							
   }		
}      	

Output:

การสร้างคลาสการทดสอบอย่างง่ายโดยไม่ต้องละเว้นการทดสอบ

พิมพ์คำสั่งบนคอนโซล:

ข้อความ Junit Hi กำลังพิมพ์อยู่

สวัสดี!Guru99

ข้อความ Junit กำลังพิมพ์

Guru99

ละเว้นวิธีทดสอบโดยใช้ @Ignore คำอธิบายประกอบ

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

มาทำแบบทดสอบกันเถอะJUnitข้อความ() ของ JunitTestExample.java

ตัวอย่างการทดสอบ JunitTest.java

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Ignore		
    @Test		
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing ");					
        assertEquals(message, junitMessage.printMessage());					

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message="Hi!" +message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					

    }		
}

Output:

มาดำเนินการและตรวจสอบผลลัพธ์ของตัวอย่างด้านบนกัน

เอาต์พุตด้านล่างแสดงว่ามีการทดสอบหนึ่งครั้งถูกข้าม (ปิดใช้งาน) ดูตามเครื่องหมายด้านล่าง:

การสร้างคลาสการทดสอบอย่างง่ายโดยไม่ต้องละเว้นการทดสอบ

พิมพ์คำสั่งบนคอนโซล:

ข้อความ Junit Hi กำลังพิมพ์อยู่

สวัสดี!Guru99

การใช้ @ ละเว้นคำอธิบายประกอบกับเงื่อนไข

มาดูตัวอย่างวิธีการเพิกเฉยต่อการทดสอบและระบุเหตุผลของการเพิกเฉยไปพร้อมๆ กัน ตามที่กล่าวไว้ข้างต้น เพื่อให้เหตุผลที่คุณมีพารามิเตอร์ทางเลือกหนึ่งพารามิเตอร์ในคำอธิบายประกอบ @Ignore ซึ่งคุณสามารถระบุข้อความเหตุผลได้

ตัวอย่างการทดสอบ JunitTest.java

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Ignore("not yet ready , Please ignore.")					
    @Test		
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing ");					
        assertEquals(message, junitMessage.printMessage());					

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message="Hi!" +message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					

    }		
}		

Output:

เช่นเดียวกับข้างต้น

ละเว้นวิธีทดสอบทั้งหมดโดยใช้ @Ignore คำอธิบายประกอบ

ตามที่กล่าวไว้ข้างต้นเพื่อเพิกเฉยต่อการทดสอบทั้งหมดในชั้นเรียน คุณต้องใช้คำอธิบายประกอบ @Ignore ในระดับชั้นเรียน

เรามาแก้ไขตัวอย่างด้านบนเพื่อทำความเข้าใจวิธีละเว้นการทดสอบทั้งหมด:

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

@Ignore		
public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Test		
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing ");					
        assertEquals(message, junitMessage.printMessage());					

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message="Hi!" +message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					

    }		
}		

Output:

ละเว้นวิธีทดสอบโดยใช้ @Ignore คำอธิบายประกอบ

พิมพ์คำสั่งบนคอนโซล:

เนื่องจากการทดสอบทั้งสองข้ามไปโดยใช้ @Ignore ในระดับชั้นเรียน ดังนั้นจึงไม่มีการพิมพ์คำสั่งบนคอนโซล

สรุป

ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีละเว้นการทดสอบเดี่ยว กลุ่มการทดสอบ หรือการทดสอบทั้งหมดโดยใช้คำอธิบายประกอบ @Ignore

@ไม่สนใจ คำอธิบายประกอบสามารถใช้ได้ในสองสถานการณ์ตามที่ระบุด้านล่าง:

  1. หากคุณต้องการละเว้นวิธีทดสอบ ให้ใช้ @Ignore ร่วมกับคำอธิบายประกอบ @Test
  2. หากคุณต้องการละเว้นการทดสอบทั้งหมดของคลาส ให้ใช้คำอธิบายประกอบ @Ignore ในระดับชั้นเรียน

คุณยังได้เรียนรู้วิธีการจัดทำคำชี้แจงเพื่อทำความเข้าใจนักพัฒนารายอื่นด้วยว่าเหตุใดการทดสอบใดการทดสอบหนึ่งจึงถูกปิดใช้งาน