0Pricing
Learn Rust Coding · บทเรียน

การทดสอบการผสานรวม

ไดเรกทอรี tests

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

การทดสอบแบบบูรณาการคืออะไร

การทดสอบแบบบูรณาการ ตรวจสอบ API สาธารณะของ crate ในลักษณะเดียวกับผู้ใช้ภายนอก การทดสอบเหล่านี้อยู่นอก src และเรียกใช้ได้เฉพาะรายการสาธารณะ

ไดเรกทอรี tests

Cargo ถือว่าไฟล์ทุกไฟล์ในไดเรกทอรีระดับบนสุด tests/ เป็น crate ทดสอบแยกกัน ไม่จำเป็นต้องมีโมดูล #[cfg(test)] ในที่นี้

  • tests/api.rs
  • tests/parsing.rs

ไลบรารีสำหรับทดสอบ

การทดสอบแบบบูรณาการกำหนดเป้าหมายที่ crate แบบไลบรารี สมมติว่า src/lib.rs เปิดเผยฟังก์ชันสาธารณะหนึ่งรายการ

// src/lib.rs
pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

การเขียนการทดสอบแบบบูรณาการ

ใน tests/add.rs ให้นำเข้า crate ตามชื่อและทดสอบ API สาธารณะของ crate นั้น แต่ละฟังก์ชันยังคงใช้ #[test]

// tests/add.rs
use my_lib::add;

#[test]
fn adds_two_numbers() {
    assert_eq!(add(2, 2), 4);
}

เฉพาะรายการสาธารณะ

เนื่องจากการทดสอบแบบบูรณาการเป็น crate แยกต่างหาก จึงใช้ได้เฉพาะรายการสาธารณะ (pub) เท่านั้น ฟังก์ชันส่วนตัวจะมองไม่เห็น เช่นเดียวกับที่ผู้ใช้จริงมองไม่เห็น

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

cargo test เรียกใช้ทั้งการทดสอบหน่วยและการทดสอบแบบบูรณาการร่วมกัน ไฟล์แต่ละไฟล์ใต้ tests/ จะปรากฏเป็นไบนารีทดสอบของตนเองในผลลัพธ์

cargo test

การเรียกใช้ไฟล์เดียว

ใช้ --test ร่วมกับชื่อไฟล์ (ไม่รวมนามสกุล) เพื่อเรียกใช้ไฟล์ทดสอบแบบบูรณาการเพียงไฟล์เดียว

cargo test --test add

ตัวช่วยทดสอบที่ใช้ร่วมกัน

หากต้องการใช้โค้ดสำหรับการตั้งค่าร่วมกันโดยไม่ทำให้เป็นไฟล์ทดสอบ ให้วางตัวช่วยไว้ใน tests/common/mod.rs ไฟล์ในไดเรกทอรีย่อยจะไม่ถูกถือว่าเป็น crate ทดสอบ

// tests/common/mod.rs
pub fn setup() {
    // shared setup logic
}

การใช้ตัวช่วย

ประกาศโมดูลแล้วเรียกใช้ฟังก์ชันของโมดูลนั้นจากการทดสอบแบบบูรณาการของคุณ

// tests/api.rs
mod common;

#[test]
fn uses_setup() {
    common::setup();
    assert!(true);
}

หน่วยเทียบกับบูรณาการ

รูปแบบการทดสอบสองแบบที่เสริมกัน:

  • การทดสอบหน่วย อยู่ใน src ทดสอบรายการส่วนตัวได้ รวดเร็วและมุ่งเน้นเฉพาะจุด
  • การทดสอบแบบบูรณาการ อยู่ใน tests/ ทดสอบ API สาธารณะตั้งแต่ต้นจนจบ

การทดสอบ crate แบบไบนารี

การทดสอบแบบบูรณาการกำหนดเป้าหมายที่ไลบรารี ไม่ใช่ไบนารี รูปแบบที่พบได้ทั่วไปคือเก็บตรรกะไว้ใน src/lib.rs และให้ src/main.rs ที่มีเนื้อหาบางทำหน้าที่เรียกใช้ เพื่อให้ทั้งการทดสอบหน่วยและการทดสอบแบบบูรณาการเข้าถึงโค้ดได้

// src/main.rs
fn main() {
    println!("{}", my_lib::add(2, 3));
}

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

การทดสอบแบบบูรณาการอยู่ที่ใด และเข้าถึงอะไรได้บ้าง

สรุปทบทวน

คุณได้เรียนรู้การทดสอบแบบบูรณาการ:

  • ไฟล์ใน tests/ เป็น crate ทดสอบแยกกัน
  • ไฟล์เหล่านี้นำเข้า crate ของคุณตามชื่อและทดสอบเฉพาะรายการสาธารณะ
  • cargo test --test name เรียกใช้ไฟล์เดียว
  • ตัวช่วยที่ใช้ร่วมกันควรอยู่ใน tests/common/mod.rs

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

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

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

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

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

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

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

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

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

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

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

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

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