cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

単体テストに関するスタンス

外部仕様(ブラックボックス的なの)のテストはなるべく最初に書くが、内部仕様(実装・ホワイトボックス的なの)のテストは実装仕様が安定するまでは、特に重要な部分に絞って*1、仕様が安定した時点で(先に作成した)中身が空のテストケースを埋めていくか修正・削除していくことにする。

理由:外部仕様と比べて内部仕様は不安定で変更が生じやすい。
というか Vim script はUIとビジネスロジックの分離がしづらくて、UIを変更することはほぼそのままビジネスロジックを大幅修正することなので仕様が確定するまで待つ必要がある。

内部ロジックに依存しすぎたユニットテストは、変更に対して脆くなるため、テスト対象の外部仕様からテストデータを選択したほうがよいという側面もあります。

https://dev.classmethod.jp/articles/blackbox_testing_and_whitebox_testing/

*1:でも一応どんなテストが必要か忘れないように、こんなテストしたいという中身のないテストケースだけは作っておく