Tests

Ajouter un test unitaire est à peine plus compliqué qu’un doctest :

#![allow(unused)]
fn main() {
pub fn add(left: usize, right: usize) -> usize {
    left + right
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        let result = add(2, 2);
        assert_eq!(result, 4);
    }
}
}

Quelques remarques :

  • cfg(test) assure que les tests ne seront pas présents dans le binaire final
  • Les tests peuvent facilement avoir accès aux données privées
  • Ajouter un test d’intégration est facile aussi (un fichier source dans tests/ suffit)
  • Un cargo test suffit pour lancer tous les tests : doctests, tests unitaires et intégration
  • Pour le property-based testing, je recommande proptest