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