- Documentation is a form of communication. - The internals of a project should not need to be communicated outside the project. - So, if you feel you need to test the internals of a project, that's your internals trying to tell you "Hey creator, I think I'm a library." - Listen to your creation. Take those internals you wanted to test, and make them into the external (public) interface of a separate library. Now they're external, so you can test them. Now those internals are reusable in other projects too. See: [[Write Executable Documentation]]