Rust

Testing

Unit test, integration test, doc test, assertion, should_panic, benchmark, การจัดระเบียบ test

18 คำถามสัมภาษณ์·
Mid-Level
1

แอตทริบิวต์ใดที่ทำเครื่องหมายฟังก์ชันให้เป็น unit test ใน Rust?

คำตอบ

แอตทริบิวต์ #[test] บอกคอมไพเลอร์ Rust ว่าฟังก์ชันที่ถูกกำกับเป็น unit test เมื่อรัน cargo test ฟังก์ชันทั้งหมดที่ทำเครื่องหมายด้วยแอตทริบิวต์นี้จะถูกค้นพบและรันโดยอัตโนมัติ test จะถูกคอมไพล์ด้วยโปรไฟล์ test เท่านั้นและจะไม่ถูกรวมไว้ใน binary สำหรับการใช้งานจริง

2

คำสั่ง Cargo ใดที่รัน test ทั้งหมดในโปรเจกต์ Rust?

คำตอบ

คำสั่ง cargo test คอมไพล์โปรเจกต์โดยเปิดใช้งาน test และรัน unit test, integration test และ documentation test ทั้งหมด มันจะค้นพบฟังก์ชันที่ทำเครื่องหมาย #[test], test ในไดเรกทอรี tests/ และตัวอย่างโค้ดในเอกสารโดยอัตโนมัติ ตัวเลือกต่าง ๆ ช่วยให้สามารถกรอง test ตามชื่อหรือ module ได้

3

ควรใช้ macro ใดเพื่อตรวจสอบว่าค่าสองค่าเท่ากันใน test?

คำตอบ

macro assert_eq! เปรียบเทียบค่าสองค่าและทำให้ test ล้มเหลวหากค่าทั้งสองไม่เท่ากัน มันจะแสดงค่าที่เปรียบเทียบโดยอัตโนมัติเมื่อล้มเหลวด้วย trait Debug ทำให้การ debug ง่ายขึ้น ต่างจาก assert! มันให้ข้อความ error ที่ให้ข้อมูลมากกว่าโดยแสดงค่าที่คาดหวังและค่าที่ได้จริง

4

ควรวาง integration test ไว้ที่ใดในโปรเจกต์ Rust?

5

ควรใช้แอตทริบิวต์ใดเพื่อทดสอบว่าฟังก์ชันทำให้เกิด panic?

+15 คำถามสัมภาษณ์

เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี