typestar

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

  1. #[cfg(test)] deja el módulo fuera de las builds de release.
  2. use super::* trae el código bajo prueba al alcance.
  3. assert_eq! imprime ambos lados cuando falla.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Pruebas y documentación; paso 4 de 12 en Módulos, pruebas y macros.

← Anterior Siguiente →