Unit Tests
Rust and Cargo come with a simple unit test framework:
Unit tests are supported throughout your code.
Integration tests are supported via the
tests/directory.
Tests are marked with #[test]. Unit tests are often put in a nested tests module, using #[cfg(test)] to conditionally compile them only when building tests.
fn first_word(text: &str) -> &str {match text.find(' ') {Some(idx) => &text[..idx],None => &text,}}#[cfg(test)]mod tests {use super::*;#[test]fn test_empty() {assert_eq!(first_word(""), "");}#[test]fn test_single_word() {assert_eq!(first_word("Hello"), "Hello");}#[test]fn test_multiple_words() {assert_eq!(first_word("Hello World"), "Hello");}}
- This lets you unit test private helpers.
- The
#[cfg(test)]attribute is only active when you runcargo test.
This slide should take about 5 minutes.
Run the tests in the playground in order to show their results.