Pruebas unitarias en Rust
Las pruebas viven junto al código en un módulo cfg(test), compiladas solo al probar.
fn slugify(title: &str) -> String {
title
.to_lowercase()
.split_whitespace()
.collect::<Vec<&str>>()
.join("-")
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn joins_words_with_hyphens() {
assert_eq!(slugify("Language Basics"), "language-basics");
}
#[test]
fn collapses_extra_spaces() {
assert_eq!(slugify(" Two Words "), "two-words");
assert!(!slugify("A B").contains(' '));
}
}
fn main() {
println!("{}", slugify("Traits And Generics"));
}
Cómo funciona
#[cfg(test)]deja el módulo fuera de las builds de release.use super::*trae el código bajo prueba al alcance.assert_eq!imprime ambos lados cuando falla.
Palabras clave y builtins usados aquí
StringVecfnmodstrsuperuse
El intento, en números
- Líneas
- 27
- Caracteres a escribir
- 454
- Tokens
- 136
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 78 segundos.
Paso 1 de 3 en Pruebas y documentación; paso 4 de 12 en Módulos, pruebas y macros.