การทดสอบเอกสาร
ตัวอย่างที่ผ่านการทดสอบ
การทดสอบเอกสาร เป็นบทเรียน 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— คาดว่าจะเกิดการหยุดทำงานเนื่องจาก paniccompile_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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การทดสอบหน่วย
- การทดสอบการผสานรวม
- คอมเมนต์เอกสาร
- การทดสอบเอกสาร