分123456Cartクラスとテストケースのリファクタリング最後の修正でaddメソッドのネストが若干深くなってしまいましたので,ここでaddメソッドのリファクタリングをしておきましょう。テストが自動化されていない場合,一般的に一度テストしたコードを変更するには「勇気」が必要となります。再度すべてのテストを行う必要があるからです。これには多くの時間と手間がかかります。品質の低下にも気を付ける必要があります。これまで様々なテストを作成し,自動的にテストを行えるようにしてきました。実行にはそれほどの時間も手間もかかりません。すべてのテストをパスする限り,品質の維持を保証することができます。このことは開発者にとって,非常に大きな助けになります。前置きがちょっと長くなりましたが,以下がaddメソッド内のif文を組み替えたコードになります。}}リファクタリング後,テストを実行して問題がないことを確認します。ついでに,テストケースもリファクタリングしておきましょう。これまで作成したすべてのテストでは,最初にCartクラスのインスタンス化を行っていますが,それぞれのテストを開始する前に,自動的にCartクラスのインスタンス化を行えると,スッキリしそうです。PHPUnitでは,こういう場面で使用できるsetUpメソッドが用意されています。setUpメソッドと対となり,テスト終了時に自動的にコールされるtearDownメソッドも用意されています。これをオーバーライドして,実行するテストに関連するオブジェクトの作成を行います。これをオーバーライドして,実行するテストに関連する,もう必要なくなったオブジェクトの後始末を行います。