Макрос println! в тестах
Макрос println! в тестах используется
для вывода отладочной информации в консоль.
Он принимает строку формата и дополнительные
аргументы, которые подставляются в эту строку.
По умолчанию вывод println! перехватывается
библиотекой тестирования и отображается только
при падении теста. Чтобы увидеть вывод даже
для успешных тестов, используйте флаг
--nocapture при запуске cargo test.
Синтаксис
println!("format string", args...);
Пример
Давайте напишем простой тест, который выводит
значение переменной с помощью println!:
fn add(a: i32, b: i32) -> i32
{
a + b
}
#[cfg(test)]
mod tests
{
use super::*;
#[test]
fn test_add()
{
let res = add(2, 3);
println!("Result: {}", res);
assert_eq!(res, 5);
}
}
fn main() {}
При запуске cargo test -- --nocapture
в консоль будет выведено:
Result: 5
Пример
Давайте выведем несколько значений с помощью
println! внутри теста:
fn multiply(a: i32, b: i32) -> i32
{
a * b
}
#[cfg(test)]
mod tests
{
use super::*;
#[test]
fn test_multiply()
{
let x = 4;
let y = 5;
let res = multiply(x, y);
println!("x = {}, y = {}", x, y);
println!("res = {}", res);
assert_eq!(res, 20);
}
}
fn main() {}
При запуске cargo test -- --nocapture
в консоль будет выведено:
x = 4, y = 5
res = 20
Смотрите также
-
макрос
assert!,
который проверяет истинность условия -
макрос
assert_eq!,
который проверяет равенство двух значений -
макрос
dbg!,
который выводит отладочную информацию с указанием файла и строки -
атрибут
should_panic,
который проверяет, что тест вызывает панику