เฟรมเวิร์ก JUnit มี 2 Assert
คลาส (ในแพ็กเกจที่แตกต่างกันอย่างเห็นได้ชัด) และวิธีการในแต่ละรายการดูเหมือนจะคล้ายกัน มีใครอธิบายได้ไหมว่าเพราะเหตุใด
เรียนผมหมายถึงคือ: และjunit.framework.Assert
org.junit.Assert
เฟรมเวิร์ก JUnit มี 2 Assert
คลาส (ในแพ็กเกจที่แตกต่างกันอย่างเห็นได้ชัด) และวิธีการในแต่ละรายการดูเหมือนจะคล้ายกัน มีใครอธิบายได้ไหมว่าเพราะเหตุใด
เรียนผมหมายถึงคือ: และjunit.framework.Assert
org.junit.Assert
คำตอบ:
วิธีการเดิม (จาก JUnit 3) junit.framework.TestCase
คือการทำเครื่องหมายการทดสอบโดยการขยายชั้นเรียน สิ่งนั้นสืบทอดมาjunit.framework.Assert
และคลาสการทดสอบของคุณได้รับความสามารถในการเรียกเมธอด assert ด้วยวิธีนี้
ตั้งแต่เวอร์ชัน 4 ของ JUnit เฟรมเวิร์กใช้Annotations
สำหรับทำเครื่องหมายการทดสอบ TestCase
ดังนั้นคุณจึงไม่จำเป็นอีกต่อไปที่จะขยาย แต่นั่นหมายความว่าวิธีการยืนยันไม่พร้อมใช้งาน แต่คุณสามารถนำเข้าคงที่ของAssert
คลาสใหม่ นั่นเป็นเหตุผลที่วิธีการยืนยันทั้งหมดในคลาสใหม่เป็นวิธีการคงที่ ดังนั้นคุณสามารถนำเข้าด้วยวิธีนี้:
import static org.junit.Assert.*;
หลังจากการนำเข้าแบบคงที่นี้คุณสามารถใช้วิธีนี้โดยไม่มีคำนำหน้า
ที่การออกแบบใหม่พวกเขาย้ายไปยังแพ็คเกจใหม่org.junit
ที่ตามอนุสัญญาปกติสำหรับการตั้งชื่อแพ็กเกจ
JUnit 3.X: junit.framework.Assert
JUnit 4.X: org.junit.Assert
ชอบคนที่ใหม่ที่สุดโดยเฉพาะอย่างยิ่งเมื่อใช้งาน JDK5 ขึ้นไปด้วยการสนับสนุนการเพิ่มความคิดเห็น
ในความเป็นจริงมีการเปลี่ยนแปลงการทำงาน: org.junit.Assert
จะบ่นถ้าคุณใช้สองข้อโต้แย้งassertEquals()
ด้วยfloat
หรือdouble
ในขณะที่junit.framework.Assert
จะปิดอัตโนมัติมันเงียบ
ฉันเชื่อว่าพวกเขากำลังปรับโครงสร้างใหม่จากjunit.framework
เป็นorg.junit
และได้junit.framework.Assert
รับการดูแลเพื่อความเข้ากันได้ย้อนหลัง
ฉันเปรียบเทียบซอร์สโค้ดคร่าวๆและไม่มีการเปลี่ยนแปลงที่ร้ายแรง มีการเพิ่มความคิดเห็นจำนวนมากorg.junit.Assert
และมีการรีแฟคเตอร์บางอย่าง Arrays
การเปลี่ยนแปลงเพียงอย่างเดียวคือการเปรียบเทียบกับ มีบางสะสางโค้ดที่มี แต่มี imho () ไม่มีการเปลี่ยนแปลงการทำงาน
ใน Android Studio (และใน IntelliJ ด้วย) คุณสามารถยกเว้นทั่วโลกjunit.framework
จากข้อเสนอการนำเข้าอัตโนมัติ
คุณสามารถกำหนดขอบเขตระหว่างหรือIDE
Project
หากคุณไม่มีโครงการที่ใช้ JUnit 3 คุณสามารถอยู่กับขอบเขต IDE ได้อย่างปลอดภัย
ตำแหน่งการตั้งค่า:
การตั้งค่า -> ตัวแก้ไข -> ทั่วไป -> การนำเข้าอัตโนมัติ
junit.framework.*
ออกจากรายการแบบหล่นการนำเข้าแบบคงที่Editor->General->Auto Import->Exclude from Import and Completion
ได้