計算やロジックが複雑かつ特定のオブジェクトに密に関わっている場合、元記事に引かれている例でいえば麻雀の点数計算のようなものとかあるいは準数値演算や組み合わせアルゴリズムが関わってくるようなメソッドだと、振る舞いを見るブラックボックステストではなく、ロジックを調べるホワイトボックステストが必要になる。
そういう場合、たとえ別モジュールに切り出してもテストしたい部分の複雑さは変わらず、やっぱりプライベートの部分をテストしたいということになる。
別モジュールに分ければプライベートメソッドをテストする必要はないはずだという想定は、プライベートメソッドをテストができない言語やテストライブラリの欠陥に対する言い逃れじゃない?
「すべきでない」というのがたぶん多数派。 テストすべきでない理由としてだいたい次の理由があげられる。 プライベートなメソッドや関数をテストする必要は無いと考えています。...
テストが必要なほどプライベートメソッドが複雑ならそれを別のオブジェクトに切り出す必要がある これでいいと思うんだけど。 テストが必要になる単位で、単純な責務になるよう...
計算やロジックが複雑かつ特定のオブジェクトに密に関わっている場合、元記事に引かれている例でいえば麻雀の点数計算のようなものとかあるいは準数値演算や組み合わせアルゴリズ...
ワイはパブリックメソッドのテストすら一度も書いたことないやで
わたしは実際にデータ流し込んだり画面叩いてテストしてるのでテストコードなんか書いたことないです。
こういうの見るとやっぱりRustやGoが今後の潮流になるのは避けられないな