Learn Rust Coding · บทเรียน

การทดสอบเอกสาร

ตัวอย่างที่ผ่านการทดสอบ

บทเรียน 4 จาก 413 ขั้นตอน

การทดสอบเอกสาร เป็นบทเรียน Learn Rust Coding ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn Rust Coding และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน

การทดสอบเอกสารคืออะไร

การทดสอบเอกสาร คือตัวอย่างโค้ดภายในความคิดเห็นเอกสารที่ Cargo คอมไพล์และเรียกใช้จริง ช่วยให้เอกสารถูกต้องและตัวอย่างทำงานได้

โค้ดในความคิดเห็นเอกสาร

ใส่โค้ดตัวอย่างไว้ในบล็อกโค้ดแบบมีรั้ว (backtick สามตัว) ภายในความคิดเห็น /// ใต้หัวข้อ # Examples ภาษาที่ใช้เป็นค่าเริ่มต้นคือ Rust

/// Doubles a number.
///
/// # Examples
///
///     let result = my_crate::double(4);
///     assert_eq!(result, 8);
pub fn double(n: i32) -> i32 {
    n * 2
}

การเรียกใช้การทดสอบเอกสาร

การทดสอบเอกสารจะทำงานเป็นส่วนหนึ่งของ cargo test และรายงานแยกต่างหากในส่วน Doc-tests

cargo test

การยืนยันในตัวอย่าง

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

/// Returns the larger of two values.
///
/// # Examples
///
///     assert_eq!(my_crate::max(3, 7), 7);
///     assert_eq!(my_crate::max(9, 2), 9);
pub fn max(a: i32, b: i32) -> i32 {
    if a > b { a } else { b }
}

การซ่อนบรรทัดการตั้งค่า

ใส่ # ไว้หน้าบรรทัดเพื่อให้ระบบเรียกใช้บรรทัดนั้น แต่ซ่อนไม่ให้แสดงในเอกสารที่เรนเดอร์แล้ว เหมาะสำหรับโค้ดพื้นฐาน เช่น คำสั่งนำเข้า

/// # Examples
///
///     # use my_crate::Counter;
///     let mut c = Counter::new();
///     c.increment();
///     assert_eq!(c.value(), 1);

ตัวอย่างการใช้เครื่องหมายคำถาม

หากต้องการใช้ตัวดำเนินการ ? ให้ห่อส่วนเนื้อหาไว้ใน main (หรือฟังก์ชันช่วย) ที่ซ่อนไว้ และให้ฟังก์ชันนั้นคืนค่าเป็น Result บรรทัดที่ซ่อนจะเริ่มต้นด้วย #

/// # Examples
///
///     # fn run() -> Result<(), std::num::ParseIntError> {
///     let n: i32 = "42".parse()?;
///     assert_eq!(n, 42);
///     # Ok(())
///     # }

ตัวอย่าง no_run

กำกับบล็อกที่ครอบด้วยเครื่องหมายด้วยคำอธิบายประกอบ no_run เพื่อให้คอมไพล์แต่ไม่เรียกใช้ เหมาะสำหรับตัวอย่างที่ต้องใช้เครือข่ายหรือไฟล์

/// Fetches a page (compiled but not executed).
///
/// Annotate the code fence with no_run so it is type-checked only.
pub fn fetch(url: &str) -> String {
    format!("contents of {url}")
}

ignore และ should_panic

คำอธิบายประกอบอื่น ๆ สำหรับบล็อกโค้ด:

  • ignore — ไม่คอมไพล์และไม่เรียกใช้
  • should_panic — คาดว่าจะเกิดการหยุดทำงานเนื่องจาก panic
  • compile_fail — คาดว่าจะคอมไพล์ไม่สำเร็จ

เหตุผลที่การทดสอบเอกสารสำคัญ

การทดสอบเอกสารให้ประโยชน์สองอย่างพร้อมกัน:

  • เอกสารที่ถูกต้องอยู่เสมอ
  • ความครอบคลุมการทดสอบตัวอย่างสาธารณะโดยไม่ต้องเขียนเพิ่ม

หากตัวอย่างใดใช้ไม่ได้ ชุดการทดสอบจะล้มเหลว

ชื่อ Crate ในตัวอย่าง

การทดสอบเอกสารทำงานเสมือนเรียกใช้จากภายนอก crate ดังนั้นให้อ้างอิงรายการต่าง ๆ ผ่านชื่อ crate (เช่น my_crate::func) หรือการนำเข้าด้วย use

บล็อกแบบมีเครื่องหมายครอบกับบล็อกแบบเยื้อง

การทดสอบเอกสารรองรับบล็อกสองรูปแบบ:

  • บล็อกแบบมีเครื่องหมายครอบโดยใช้ backtick สามตัว ซึ่งรองรับคำอธิบายประกอบอย่าง no_run
  • บล็อกแบบเยื้อง (เว้นวรรคสี่ตัว) ดังที่แสดงในตัวอย่างเหล่านี้

บล็อกแบบมีเครื่องหมายครอบพบได้บ่อยกว่าในโค้ดจริง

ตรวจสอบอย่างรวดเร็ว

บรรทัดที่เริ่มต้นด้วย # ภายในบล็อกโค้ดของการทดสอบเอกสารทำหน้าที่อะไร

สรุปทบทวน

คุณได้เรียนรู้เกี่ยวกับการทดสอบเอกสารดังนี้:

  • โค้ดในบล็อก /// จะถูกคอมไพล์และเรียกใช้โดย cargo test
  • ใช้การยืนยันเพื่อตรวจสอบพฤติกรรม
  • # ซ่อนบรรทัดการเตรียมการจากเอกสารที่เรนเดอร์แล้ว
  • คำอธิบายประกอบ: no_run, ignore, should_panic, compile_fail
  • ช่วยให้ตัวอย่างถูกต้องโดยอัตโนมัติ
เริ่มต้นได้ฟรี

เรียนรู้ Rust ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
39
บทเรียน
144

คำถามที่พบบ่อย

บทเรียน “การทดสอบเอกสาร” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การทดสอบเอกสาร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn Rust Coding ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การทดสอบเอกสาร”

ตัวอย่างที่ผ่านการทดสอบ คุณปฏิบัติ Learn Rust Coding ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn Rust Coding หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn Rust Coding บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การทดสอบเอกสาร” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn Rust Coding นี้ได้ไหม

ได้ บทเรียน Learn Rust Coding ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การทดสอบหน่วย
  2. การทดสอบการผสานรวม
  3. คอมเมนต์เอกสาร
  4. การทดสอบเอกสาร
← กลับไปที่ Learn Rust Coding