Suppose you have two classes: Alpha, and Bravo.
Alpha has a Bravo class with no getter (e.g. not publicly visible).
Bravo has a String named charlie (and a method to Get that String).
Let's say you have set up a test that constructs a new Alpha class. At the end of this test, you want to assert that bravo.getCharlie() is equal to some expected String. How should the test get access to this String?
Should we add a getBravo() method to Alpha just because this test seems to need it?
Should we continue hiding Bravo but add a getter for Charlie inside of Alpha?
(where alpha.getCharlie() is just a way of writing alpha.getBravo().getCharlie() without making that Bravo getter public)
Any other options?