Skip to content

mystic01/PotterShoppingCart

Repository files navigation

解題的心中小劇場

  • 我記得原題目有一個關鍵字「台灣」,所以直接用繁體中文版的哈利波特 ISBN 當key值了,相當合理吧!但現在題目竟然變了 @0@ 關鍵的「台灣」字樣被移除了!! 這....要重寫了嗎?
  • 身為一個負責任的工程師,一開始已經 public 出去的 function 應該就不能改了對吧...
  • 寫到第七個紅燈才發現前面有重大的 bug...要是沒有 TDD ,看到第六個需求直接就綠燈,我第七個大概也不會檢查就發行了吧!(深刻感受到 TDD 的威力了!!
  • 我寫起來都覺得絞盡腦汁,很佩服也很感謝 91大出這樣的習題,累死自己 XD

題目如下

User Story

哈利波特一到五冊熱潮正席捲全球,世界各地的孩子都為之瘋狂。 出版社為了慶祝TDD課程招生順利,決定訂出極大的優惠,來回饋給為了小孩四處奔波買書的父母親們。 定價的方式如下:

  1. 一到五集的哈利波特,每一本都是賣100元
  2. 如果你從這個系列買了兩本不同的書,則會有5%的折扣
  3. 如果你買了三本不同的書,則會有10%的折扣
  4. 如果是四本不同的書,則會有20%的折扣
  5. 如果你一次買了整套一到五集,恭喜你將享有25%的折扣
  6. 需要留意的是,如果你買了四本書,其中三本不同,第四本則是重複的, 那麼那三本將享有10%的折扣,但重複的那一本,則仍須100元。 你的任務是,設計一個哈利波特的購物車,能提供最便宜的價格給這些爸爸媽媽。

Feature: PotterShoppingCart

In order to 提供最便宜的價格給來買書的爸爸媽媽
As a 佛心的出版社老闆
I want to 設計一個哈利波特的購物車

Scenario 1: 第一集買了一本,其他都沒買,價格應為100 x 1 = 100

Given 第一集買了 1 本
And 第二集買了 0 本
And 第三集買了 0 本
And 第四集買了 0 本
And 第五集買了 0 本
When 結帳
Then 價格應為 100 元

Scenario 2: 第一集買了一本,第二集也買了一本,價格應為100 x 2 x 0.95 = 190

Given 第一集買了 1 本
And 第二集買了 1 本
And 第三集買了 0 本
And 第四集買了 0 本
And 第五集買了 0 本
When 結帳
Then 價格應為 190 元

Scenario 3: 一二三集各買了一本,價格應為100 x 3 x 0.9 = 270

Given 第一集買了 1 本
And 第二集買了 1 本
And 第三集買了 1 本
And 第四集買了 0 本
And 第五集買了 0 本
When 結帳
Then 價格應為 270 元

Scenario 4: 一二三四集各買了一本,價格應為100 x 4 x0.8 = 320

Given 第一集買了 1 本
And 第二集買了 1 本
And 第三集買了 1 本
And 第四集買了 1 本
And 第五集買了 0 本
When 結帳
Then 價格應為 320 元

Scenario 5: 一次買了整套,一二三四五集各買了一本,價格應為100 x 5 x 0.75 = 375

Given 第一集買了 1 本
And 第二集買了 1 本
And 第三集買了 1 本
And 第四集買了 1 本
And 第五集買了 1 本
When 結帳
Then 價格應為 375 元

Scenario 6: 一二集各買了一本,第三集買了兩本,價格應為100 x 3 x 0.9 + 100 = 370

Given 第一集買了 1 本
And 第二集買了 1 本
And 第三集買了 2 本
And 第四集買了 0 本
And 第五集買了 0 本
When 結帳
Then 價格應為 370 元

Scenario 7 : 第一集買了一本,第二三集各買了兩本,價格應為100 x 3 x 0.9 + 100 x 2 x 0.95 = 460

Given 第一集買了 1 本
And 第二集買了 2 本
And 第三集買了 2 本
And 第四集買了 0 本
And 第五集買了 0 本
When 結帳
Then 價格應為 460 元

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages