higaki / learn_ruby_kansai_87

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ruby 初級者向けレッスン 71回

テスト駆動開発

スタック クラスを作ろう!

テスト駆動開発で「スタック」クラスを作ってみよう。

スタックとは

複数のデータを保持する。

  • push で順に要素を追加できること
  • pop で最後から順に要素を取り出せること

このような動作を LIFO (Last In, First Out) という。

実装するメソッド

  • empty?
    • スタックが空なら真、空でなければ偽を返す。
  • size
    • スタックの要素数を返す。
  • push(val)
    • 引数の値をスタックの最後に積む。
  • pop
    • スタックの最後の値を取り除いて返す。
    • スタックが空なら Stack::EmptyStackError を発生させる。

Step 1

  • 新しいスタックの empty? は真であること。
  • まずテストが失敗することを確認しよう。(Red)
  • empty? で真を返そう。(Fake it!)

Step 2

  • push を実装して空でないスタックを作ろう。空でないスタックの empty? は偽であること。
  • Fake it! が通らなくなることを確認しよう。(Triangulate)
  • テストが通るように empty? を実装しよう。(Green)

Step 3

  • 新しいスタックの size は 0 であること。
  • テストが失敗することを確認しよう。(Red)
  • size で 0 を返そう。(Fake it!)

Step 4

  • 要素がひとつ積まれたスタックの size は 1 であること。
  • Fake it! が通らなくなることを確認しよう。(Triangulate)
  • テストが通るように size を実装しよう。(Green)

Step 5

  • 要素がふたつ積まれたスタックから pop すると最後の要素が返ること。
  • size は 1 であること。
  • empty? は偽であること。

Step 6

  • 要素がひとつ積まれたスタックから pop すると最後の要素が返ること。
  • size は 0 であること。
  • empty? は真であること。

Step 7

  • 新しいスタックから pop すると Stack::EmptyStackError が発生すること。

About


Languages

Language:Ruby 100.0%