Should all public/protected fields/methods of JUnit code base be considered the public API? I think it will be awkward and hinder development. What about to formally specify the publicly available extension points and all other classes leave for embracing changes?