Unit testing

Unit tests should live in a tests submodule at the bottom of the module they test. Mark the tests submodule with #[cfg(test)] so it is only compiled when testing.

The tests module should contain:

For example:

fn main() { // Excerpt from std::str #[cfg(test)] mod tests { #[test] fn test_eq() { assert!((eq(&"".to_owned(), &"".to_owned()))); assert!((eq(&"foo".to_owned(), &"foo".to_owned()))); assert!((!eq(&"foo".to_owned(), &"bar".to_owned()))); } } }
// Excerpt from std::str

#[cfg(test)]
mod tests {
    #[test]
    fn test_eq() {
        assert!((eq(&"".to_owned(), &"".to_owned())));
        assert!((eq(&"foo".to_owned(), &"foo".to_owned())));
        assert!((!eq(&"foo".to_owned(), &"bar".to_owned())));
    }
}

[FIXME] add details about useful macros for testing, e.g. assert!