nullチェックにassertionはイマイチという話
nullチェックにassertionを使うとtestablityとreadabilityが損なわれるよと。
http://googletesting.blogspot.com/2009/02/to-assert-or-not-to-assert.html
- テストコードで引数にnullを与えることで読者に「これは追いかける必要が無いものですよ」と知らせることができる
- assertionでnullチェックを行うと
- (nullを渡せないので)必要の無いオブジェクトを作成することを強制されてしまう
- テストコードの読みやすさと書きやすさが損なわれる
- nullが来たらどーすんだ
- Factoryクラスを作ってそっちでテストしとけ
- 外部に公開されるAPI等で無い限りこれで十分
- assertionもちろん使うよ状態チェックとかに
テストコード用に簡単にオブジェクトを作れる手段(nullチェック無しのコンストラクタ)を提供すれば解決?