generated at
private functionのtest
このページでは基本的にprivate functionのtestをするときのことについて書く(書きたい)mrsekut


前提
以下の2つを区別してtestを書く
tests/ のようなdirを作ってその中に書く
実装の詳細をtestしない
publicなもののみtestする
privateなものはtestしない


いくつかの方法
公開範囲をpackage内に制限すれば良い
OCamlにはppx_inline_testという機構があるらしい
(ここでいう「module」は、Goの用語では「pacakage」)
hoge.go に対して、 hoge_test.go にするなどの命名規則がある
Erlangのmeck


参考




すごいmrsekut
PHPなのにDXが良い
private methodのtestに関しては2022年になっても結論が出ていない
様々な論者の主張
そもそもprivate methodを一切使用しない
これは論外mrsekut
全てのprivate methodをtestする
private methodはtestしない
ものによってtestしたりしなかったりする
private methodをまとめて別classに分ける
private methodをtestしたくなるということは、そのclassが大きすぎるということを疑う





使用している言語のmoduleのサポートがしょぼいせいで選択肢が失せるのは問題mrsekut
TypeScriptとかだと、どうしてもpublicにしないとtestできない
だから泣く泣く、以下のいずれかの選択を迫られる
privateなものはtestしない
testのためだけにpublicにする
この辺の議論と、「private なものをtestするべきかどうか」はごっちゃにすべきでないと思う

いまいち読む気がしない