This content originally appeared on DEV Community and was authored by Pallat Anchaleechamaikorn
การเขียน unit test ในภาษา Rust โดยปกติแล้วจะเขียนลงไปใน file เดียวกันกับ code ที่ใช้งานจริงเลย แต่ถ้าเป็น integration test จะแยกไปเขียนใน /tests ที่วางไว้ระดับเดียวกับ /src
วิธีเขียน unit test ทำแบบนี้
fn add(a:i32, b:i32) -> i32 {a+b}
fn main() {
println!("{}",add(1,2));
}
#[cfg(test)]
mod tests {
#[test]
fn add_correct() {
assert_eq!(3, super::add(1,2));
}
}
จากตัวอย่าง อธิบายได้ว่า เรามี function add ไว้บวกเลขธรรมดา ทีนี้เวลาเราเขียน unit test ลงไปใน code ตรงๆ เวลา compile มันก็จะติดส่วนที่เป็น unit test เข้าไปด้วย และเพื่อป้องกันเหตุนั้น เราจึงใส่
#[cfg(test)]
ไว้บน mod tests เพื่อบอก compiler ว่าส่วนต่อไปนี้เป็น unit test ไม่ต้องเอาไป compile
จากนั้นก็สร้าง module ชื่อ tests ลงไปเลย และในทุกๆ function ที่เป็น unit test ให้ใส่ #[test]
ไว้
จากนั้นเวลาจะไปเรียก function จริงๆ จะต้องเรียกผ่าน super::
และถ้าขี้เกียจ ก็อาจจะใช้ use super::*;
ช่วยได้ เช่น
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn add_correct() {
assert_eq!(3, add(1,2));
}
}
เวลารันเทส ใช้คำสั่ง
cargo test
เพียงเท่านี้ก็เริ่มเขียน unit test ใน Rust กันได้แล้ว
This content originally appeared on DEV Community and was authored by Pallat Anchaleechamaikorn
Pallat Anchaleechamaikorn | Sciencx (2021-06-28T03:17:28+00:00) เขียน unit test ใน Rust. Retrieved from https://www.scien.cx/2021/06/28/%e0%b9%80%e0%b8%82%e0%b8%b5%e0%b8%a2%e0%b8%99-unit-test-%e0%b9%83%e0%b8%99-rust/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.