การยืนยันผล
ตรวจสอบพฤติกรรม
การยืนยันผล เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
การตรวจยืนยันคืออะไร
การตรวจยืนยันจะตรวจสอบว่าค่าจริงตรงกับค่าที่คุณคาดหวังหรือไม่ หากไม่ผ่าน การทดสอบจะล้มเหลวพร้อมข้อความที่ช่วยอธิบายสาเหตุ
JUnit5 มีการตรวจยืนยันอยู่ใน org.junit.jupiter.api.Assertions
assertEquals
การตรวจยืนยันที่ใช้บ่อยที่สุด โปรดสังเกตลำดับ: ค่าที่คาดหวังก่อน ค่าจริงทีหลัง
import org.junit.jupiter.api.Assertions.assertEquals
fun main() {
val sum = 2 + 3
assertEquals(5, sum)
println("passed")
}assertTrue และ assertFalse
ตรวจยืนยันเงื่อนไขบูลีนได้โดยตรง
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Assertions.assertFalse
fun main() {
assertTrue(10 > 5)
assertFalse("".isNotEmpty())
println("ok")
}การตรวจยืนยันค่า Null
ใช้ assertNull และ assertNotNull เพื่อตรวจสอบความเป็น null โดยในหลายกรณี assertNotNull ยังช่วยปรับชนิดข้อมูลอัตโนมัติได้ด้วย
import org.junit.jupiter.api.Assertions.assertNotNull
import org.junit.jupiter.api.Assertions.assertNull
fun main() {
val name: String? = "Ada"
assertNotNull(name)
assertNull(null)
println("done")
}การตรวจยืนยันข้อยกเว้น
assertThrows ตรวจสอบว่าบล็อกหนึ่งโยนข้อยกเว้นที่ระบุหรือไม่ โดยจะคืนค่าข้อยกเว้นกลับมาเพื่อให้คุณตรวจสอบข้อความของข้อยกเว้นได้
import org.junit.jupiter.api.Assertions.assertThrows
import org.junit.jupiter.api.Assertions.assertEquals
fun main() {
val ex = assertThrows(IllegalArgumentException::class.java) {
require(false) { "bad input" }
}
assertEquals("bad input", ex.message)
println("caught")
}การตรวจยืนยันแบบจัดกลุ่ม
assertAll จะเรียกใช้การตรวจยืนยันหลายรายการและรายงานความล้มเหลวทั้งหมดพร้อมกัน แทนที่จะหยุดที่รายการแรก
import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertEquals
fun main() {
assertAll(
{ assertEquals(2, 1 + 1) },
{ assertEquals(4, 2 + 2) }
)
println("all passed")
}ข้อความแจ้งความล้มเหลว
ส่งข้อความ (หรือแลมบ์ดาข้อความแบบประเมินเมื่อจำเป็น) เพื่อให้เข้าใจสาเหตุของความล้มเหลวได้ด้วยตนเอง
import org.junit.jupiter.api.Assertions.assertEquals
fun main() {
val balance = 100
assertEquals(100, balance, "balance should be unchanged")
println("ok")
}การเปรียบเทียบชุดข้อมูล
assertEquals ใช้กับรายการได้เมื่อลำดับและเนื้อหาตรงกัน ใช้ assertIterableEquals กับค่าที่วนซ้ำได้ซึ่งมีชนิดรูปธรรมแตกต่างกัน
import org.junit.jupiter.api.Assertions.assertEquals
fun main() {
val expected = listOf(1, 2, 3)
val actual = (1..3).toList()
assertEquals(expected, actual)
println("lists equal")
}การตรวจยืนยันแบบต่อเนื่องด้วย AssertK
ไลบรารีอย่าง AssertK มีรูปแบบที่อ่านง่ายอย่าง assertThat(x).isEqualTo(y) ซึ่งเป็นที่นิยมในฐานโค้ด Kotlin
// assertThat(result).isEqualTo(5)
// assertThat(list).contains("a", "b")
// assertThat(name).isNotNull()fail()
เรียกใช้ fail เพื่อบังคับให้เกิดความล้มเหลว ซึ่งมีประโยชน์สำหรับระบุแขนงโค้ดที่ไม่ควรไปถึงหรือการทดสอบที่ยังทำไม่เสร็จ
import org.junit.jupiter.api.Assertions.fail
fun process(x: Int): String = when {
x > 0 -> "positive"
else -> fail("unexpected value")
}การเลือกการตรวจยืนยันที่เหมาะสม
เลือกการตรวจยืนยันที่เฉพาะเจาะจงที่สุด เพื่อให้เข้าใจความล้มเหลวได้ชัดเจน:
- ความเท่ากัน →
assertEquals - เงื่อนไข →
assertTrue/assertFalse - ข้อผิดพลาด →
assertThrows - การตรวจสอบหลายรายการ →
assertAll
ตรวจสอบอย่างรวดเร็ว
คุณต้องการให้การทดสอบรายงานการตรวจสอบที่ล้มเหลวทุกข้อพร้อมกัน แทนที่จะหยุดที่รายการแรก คุณควรใช้อะไร
สรุปทบทวน
ตอนนี้คุณรู้จักการตรวจยืนยันของ JUnit5 แล้ว:
assertEquals(ค่าที่คาดหวังก่อน),assertTrue/assertFalseassertNull/assertNotNull,assertThrowsassertAllสำหรับการตรวจสอบแบบจัดกลุ่ม- เพิ่มข้อความเพื่อให้ชัดเจนยิ่งขึ้น
ถัดไป: การจำลองการพึ่งพาด้วย MockK
คำถามที่พบบ่อย
บทเรียน “การยืนยันผล” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การยืนยันผล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การยืนยันผล”
ตรวจสอบพฤติกรรม คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การยืนยันผล” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ