仕様の1番目「koza.csvファイルが存在するときはファイルを読み取り、それをDataクラスに設定し、リストにして返す」にはどの様なテストが必要か?を考えます。単純に考えるならば以下の様になります。ファイルの存在を確認する処理が想定通りに動くか?ファイルが存在するならば、それを読み込みデータリストを返却するか?そして、もう1つの仕様「koza.csvがない場合は、システムエラーを出す」に関してはファイルが存在しないときはシステムエラーを出し、アプリケーションを終了するか?それぞれ、上の様なチェック(テスト)を行います。ぶっちゃけて、まずはこの単純な確認を行ってから次に「穴はないか?」を考えれば良いと思います。シンプルにその様なテストケースを作成します。「ファイルの存在を確認する処理が想定通りに動くか?」これを確認するために実装クラスとテストクラスの両方を修正します。着手するのは1つずつなので安心ください。}}とりあえずは、ファイルの存在チェック処理を動かすためのテストケース(メソッド)を作成しました。ここで、足りないものがあります。テスト対象クラス(実装するクラス)ファイル存在チェック処理メソッド通常の開発だと、これらを実装してからテストしますが。先に箱(スタブ)だけ作ってしまいます。実装前なのでスタブにします。}}そして、ちょっと考えてみると「ファイルの存在チェック処理を行うのに、ファイル名が必要だな。」と気がつくと思います。ここが悩みどころファイル名を(引数で)渡す処理方法と、ファイル名を固定して渡す方法のどちらもできるので「どちらの手段が汎用性、保守性共に高いだろうか?」と悩んでみます。自分の結論は「引数でファイル名を渡す」方が良いと思ったのですが、すでに実装ている部分ではコンストラクタで生成しているので今回は、引数なしでのメソッドにします。以下の様なコードになります。実装前なのでスタブにします。}}実行結果は下にあります。