РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
826 of 1245 menu

Макрос 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,
    который проверяет, что тест вызывает панику
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить