TDD Boot Camp 京都 0.1

TDD Boot Camp 京都 0.1/課題( #tddbc )

※ この課題はTDDBC 大阪 3.0の課題を一部改変しています

用語集

http://devtesting.jp/tddbc/?TDDBC%E4%BB%99%E5%8F%B002%2F%E8%AA%B2%E9%A1%8C%E7%94%A8%E8%AA%9E%E9%9B%86

対象

 飲み物自動販売機 Ver 2.0

課題を解くにあたって大事な事

  • 課題を全部解くのを目標するのではなく、ワークショップの学習成果を最大化するように心がけましょう!
  • ペアプロはこまめに交代するようにしましょう!10分ぐらいが目安です!
  • TDDは「きれいで動くコード」を目指します。必要に応じて各自独自にリファクタリングを心がけましょう!
  • 課題の箇条書きはTDDのRED->GREENの1サイクルに対応している訳ではありません。やりやすいように仕様を整理・分割して、スモールステップで進めましょう
  • オブジェクト・モジュールはこまめに分割しましょう(たとえば自販機、在庫管理、金銭管理という風に)

課題

ステップ1 お金の投入と払い戻し

  • 10円玉、50円玉、100円玉、500円玉、1000円札を1つずつ投入できる。
  • 投入は複数回できる。
  • 投入金額の総計を取得できる。
  • 払い戻し操作を行うと、投入金額の総計を釣り銭として出力する。

ステップ2 扱えないお金

  • 想定外のもの(硬貨:1円玉、5円玉。お札:千円札以外のお札)が投入された場合は、投入金額に加算しない。

ステップ3 ジュースの管理

  • 値段と名前の属性からなるジュースを1種類格納できる。初期状態で、コーラ(値段:120円、名前”コーラ”)を5本格納している。
  • 格納されているジュースの情報(値段と名前と在庫)を取得できる。
  • 注意:責務を持ちすぎていませんか?責任を持ちすぎていたら分割しましょう

ステップ4 購入

  • 投入金額、在庫の点で、コーラが購入できるかどうかを取得できる。
  • ジュース値段以上の投入金額が投入されている条件下で購入操作を行うと、ジュースの在庫を減らし、売り上げ金額を増やす。
  • 投入金額が足りない場合もしくは在庫がない場合、購入操作を行っても何もしない。
  • 現在の売上金額を取得できる。
  • 払い戻し操作では現在の投入金額からジュース購入金額を引いた釣り銭を出力する。
  • 注意:責務が集中していませんか?責務が多すぎると思ったら分けてみましょう
Last modified:2013/08/07 20:52:48
Keyword(s):
References: