ホワイトボックステストを否定する気はないけど...例えば
>>88のコードを借りるけど

> queue = Queue()
> queue.push(17)
> asserEqual( queue.length, 1)
> a = queue.pop()
> assertEqual( a, 17)
> assertEqual( quele.length, 0)

こんなノリでprivateだったメソッドをpublicにしたり、リフレクションを使って呼び出すとする。

queue.内部実装()

...で、これでカバレッジテストに合格しちゃったらどうするの?

Queueというクラスはテストに合格したと見なすの?
テストってテスト項目に合否判定を出す作業だと思うのだが、内部実装の呼び出しで合否判定を変えるなんてチートは駄目だと思う。

そもそも、privateメソッドを定義するケース自体、珍しいから、経験則に基づかない発言でもあるが...。