เขียน unit test ใน Rust

การเขียน unit test ในภาษา Rust โดยปกติแล้วจะเขียนลงไปใน file เดียวกันกับ code ที่ใช้งานจริงเลย แต่ถ้าเป็น integration test จะแยกไปเขียนใน /tests ที่วางไว้ระดับเดียวกับ /src

วิธีเขียน unit test ทำแบบนี้

fn add(a:i32, b:i32) -> i32 {a+b}

fn main(…


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


Print Share Comment Cite Upload Translate Updates
APA

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/

MLA
" » เขียน unit test ใน Rust." Pallat Anchaleechamaikorn | Sciencx - Monday June 28, 2021, 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/
HARVARD
Pallat Anchaleechamaikorn | Sciencx Monday June 28, 2021 » เขียน unit test ใน Rust., viewed ,<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/>
VANCOUVER
Pallat Anchaleechamaikorn | Sciencx - » เขียน unit test ใน Rust. [Internet]. [Accessed ]. Available 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/
CHICAGO
" » เขียน unit test ใน Rust." Pallat Anchaleechamaikorn | Sciencx - Accessed . 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/
IEEE
" » เขียน unit test ใน Rust." Pallat Anchaleechamaikorn | Sciencx [Online]. Available: 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/. [Accessed: ]
rf:citation
» เขียน unit test ใน Rust | Pallat Anchaleechamaikorn | Sciencx | 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.

You must be logged in to translate posts. Please log in or register.