『車窓からのTDD』を写経してみた #5 北陸トンネル
(写経)5.北陸トンネルね!いっちょらい! 〜Exception テスト〜
(P.8)
(P.9)
次は例外のテスト。何もpushしてない時にpopをした場合、EmptyStackExceptionがthrowされる事を確認する。
pop()をガラだけ実装。
別途、1回pushしていればpopしても例外を投げない事を確認。新しくテスト(testPushAndPop()メソッド)を追加。この時点ではまだ失敗と出る。
現状仕様とこの後の章の内容を見ると、ソースコード的にはpop実装は後程行っている模様。となると、ここでのpop()メソッドは
- 要素が空だったら例外を投げる
ポイントのみとなるので、popしてもsizeは変わらない=1である、と把握。assert文を書き換えてテストを通すことにする。
次いで、空の状態でtop()メソッドを実行したときに例外を返すテストを書いてみる。この状態ではテストが失敗する。
(P.10)
pop()メソッドと同じ対応をtop()メソッドにも施してみる。そしてテストが通る事を確認。
ここで、空判定を行う処理記述が重複しているので、メソッド抽出を行う。重複箇所を範囲選択し、[Alt]+[Shift]+[M]でメソッド抽出ダイアログが表示される。メソッド名を入力し、[OK]を押下。