分123456不足している仕様とテストを追加するさて,挙げられた仕様はすべて実装しましたが,ここで不足している仕様やテストがないかどうかを確認してみましょう。カートに入っている商品の数量に制限がありません。数量が負数になることはないと考えられますので,下限は0としましょう。数量の上限はシステムの要件で異なることが多いですので,ちょっと非現実的ですが,ここではPHP_INT_MAX(2147483647)としておきましょう。数量が上限・下限を越えた場合の処理はどうでしょうか?ここでは,上限を超えた場合はSPL拡張モジュールで定義されているOutOfRangeExceptionを投げ,下限を越えた場合はエラーは発生せず,数量が0になることにしましょう。まとめると,以下の3つを新しい仕様として追加します。数量の上限を超過した場合,OutOfRangeExceptionを投げる数量の下限を超過した場合,数量は0になる現在の仕様では「数量が0」である商品もカートの中に存在することができてしまいます。この場合,カートから商品を取り除いた方が良いと考えられますので,これも仕様として追加しておきましょう。これにより,上の3つ目の仕様は数量が下限もしくは下限を超過した場合,その商品はカートから取り除かれるとなります。それでは,新しく挙げた仕様を実装します。前者2つはaddメソッドのテストとして,3つ目はgetItemsメソッドのテストとして,それぞれテストケースに追加することにします。テストが通るように,Cartクラスを実装していきます。