use capture_logger::{begin_capture, end_capture, pop_captured, Level}; #[test] fn test_capture() { begin_capture(); if log::log_enabled!(log::Level::Trace) { log::trace!("OK"); let record = pop_captured().unwrap(); println!("{:?}", record); assert_eq!("OK", record.message()); assert_eq!(Level::Trace, record.level()); } assert!(pop_captured().is_none()); } #[test] fn test_log_before_capture() { log::trace!("OK"); begin_capture(); assert!(pop_captured().is_none()); } #[test] #[should_panic(expected = "already captured.")] fn test_begin_twice() { begin_capture(); begin_capture(); } #[test] #[should_panic(expected = "not captured.")] fn test_pop_without_capture() { pop_captured(); } #[test] #[should_panic(expected = "not captured.")] fn test_pop_after_end_capture() { begin_capture(); end_capture(); pop_captured(); }