There's no special magical way to mock things in Rust. What you're doing makes sense. Rust's (built-in) unit testing story is not very complex, you have 3 assertion macros and the #[test]
attribute basically.
What additional functionality are you hoping to get through an alternative means of initializing the cat?