POODRなどの本から TDD に関して私が見た一般的なアドバイスは、プライベート メソッドをテストしないことです。プライベート メソッドを呼び出すパブリック メソッドがテストされ、プライベート メソッドを検証するのに十分なはずであるという考えです。
これは理にかなっていますが、プライベート メソッドが複数の「層」の深さである場合はどうでしょうか。これが私が言いたいことの不自然な例です:
public
# test this method
def foo
private1
end
private
def private1
private2
end
def private2
private3
end
def private3
# does stuff
end
共有する実際の例はありませんが、このような場合、 public メソッドをテストするだけで十分foo
ですか? それとも、このように構成されたコードは、おそらくより深い問題を示しているのでしょうか?