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