Search code examples
testingrust

How do I test private methods in Rust?


How do I test private methods in Rust? I didn't find any information about it. There's no information in the documentation either.


Solution

  • When using #[test], there’s nothing special about private or public methods—you’re just writing perfectly normal functions that can access anything they can access.

    fn private_function() {
    }
    
    #[test]
    fn test_private_function() {
        private_function()
    }
    

    External tests, such as tests/*.rs and examples/*.rs if you’re using Cargo, or doc tests, do not get access to private members; nor should they: such tests are designed to be public API tests, not to be dealing with implementation details.