I am new to the concept of TDD and am just starting to get the hang of writing good unit tests for the public interface of my applications.
Currently, I am working on a class library where the public interface is relatively small but there is a large amount of complexity that goes on in classes behind the scenes. This functionality is implemented in internally scoped classes and methods and are therefore not available for unit testing. I do not want to make these classes and methods public because they should not be available to the consuming application but I don't feel like I can adequately test all of the application's functionality without writing more specific test cases.
Can someone explain to me how I might accomplish such testing? Or is something wrong with my approach that I could change to facilitate better testing.
BTW, I am working in a C# .NET environment but I think my question could also apply to Java or any number of other platforms as well.