試験項目表

2026-10-26 12:54:31 に作成
全 13 件 成功 10 スキップ 1 想定どおり失敗 1 失敗 1

小さなお店 docs/screenshots/casebook_demo.yaml

価格の計算・在庫の確認・注文の明細を、CLI と Python の関数から確かめる

期待出力ファイルの置き場所: golden/casebook_demo/
期待出力の中の <…> は、実行ごとに変わる値の置き換えです
13 件 成功 10 スキップ 1 想定どおり失敗 1 失敗 1
大項目件数結果
価格計算5成功 5
在庫3成功 3
注文5成功 2 スキップ 1 想定どおり失敗 1 失敗 1

確認が必要なケース

大項目中項目小項目ケース確認内容前提条件期待結果結果時間
価格計算
会員割引とまとめ買い割引
通常の購入
CLI
price_one
store price りんご 1
1個だけなら割引はない—成功1 ms
期待出力(price_one.txt)
# exit_code: 0
----- stdout -----
りんご x 1 = 150 円(割引 0 円)
price_member
store price りんご 3 --member
会員は1割引きになる—成功1 ms
期待出力(price_member.txt)
# exit_code: 0
----- stdout -----
りんご x 3 = 405 円(割引 45 円)
関数
quote_bulk
store:quote
5個以上で50円引きになる—
return = {"discount": 50, "total": 450}
成功0 ms
入力の誤り
price_unknown_item
store price ぶどう 1
存在しない商品はエラーになる—
exit_code = 1
stderr が「商品がありません」を含む
成功1 ms
quote_zero
store:quote
個数0は ValueError になる—
raises = "ValueError"
成功0 ms
在庫
通常時
stock_available
store stock りんご
在庫があれば個数を表示する—成功1 ms
期待出力(stock_available.txt)
# exit_code: 0
----- stdout -----
りんご: 10 個
stock_empty
store stock バナナ
在庫0の商品は在庫切れと表示し、終了コード3を返す—
exit_code = 3
stdout が「在庫切れ」を含む
成功1 ms
売り切れ時
stock_sold_out
store:stock
売り切れの状態では available が false になる
状態: sold_out
return = {"available": false}
成功0 ms
注文
明細
receipt_small
store receipt りんご=2 バナナ=1
3,000円未満は送料500円がかかる—成功1 ms
期待出力(receipt_small.txt)
# exit_code: 0
----- stdout -----
りんご x 2: 300 円
バナナ x 1: 100 円
小計: 400 円
送料: 500 円
合計: 900 円
receipt_free_shipping
store receipt メロン=2 りんご=4
ちょうど3,000円なら送料は無料になる—失敗1 ms
失敗の詳細
[receipt_free_shipping](81 行目) 注文 > 明細 ちょうど3,000円なら送料は無料になる
出力が期待と異なります。意図した変更なら `--casebook-update` で更新してください。
--- golden/casebook_demo/receipt_free_shipping.txt(期待)
+++ 実際の出力
@@ -3,5 +3,5 @@
 メロン x 2: 2400 円
 りんご x 4: 600 円
 小計: 3000 円
-送料: 0 円
-合計: 3000 円
+送料: 500 円
+合計: 3500 円
期待出力(receipt_free_shipping.txt)
# exit_code: 0
----- stdout -----
メロン x 2: 2400 円
りんご x 4: 600 円
小計: 3000 円
送料: 0 円
合計: 3000 円
引き当て
reserve_short
store:reserve
在庫が足りなければ OutOfStock になる
stock: {"メロン": 1}
raises = "OutOfStock"
成功0 ms
ポイント
points_round_down
store:points
100円未満の端数はポイントにならない—
return = 4
想定どおり失敗
不具合 #12: 端数を切り上げている
0 ms
クーポン
coupon_percent
store:coupon
10% 引きのクーポンを使える—
return = 900
スキップ
仕様が決まるまで止める
0 ms