higaki / learn_ruby_kansai_71

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

テスト駆動開発

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

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

スタックとは

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

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

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

実装するメソッド

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

Step 1

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

Step 2

  • 新しいスタックに 3 を push して、pop すると 3 が返ること。
  • テストが失敗することを確認しよう。(Red)
  • pop で 3 を返そう。(Fake it!)

Step 3

  • 新しいスタックに 3 を push すると size が 1 になること。
  • テストが失敗することを確認しよう。(Red)
  • Stack#size で 1 を返そう。(Fake it!)

Step 4

  • 新しいスタックに 3 を push した後、5 を push すると size が 2 になること。
  • Fake it が通らなくなることを確認しよう。(Triangulate)
  • テストが通るように修正しよう。(Green)

Step 5

  • 新しいスタックに 3 を push すると empty? は偽であること。
  • Fake it が通らなくなることを確認しよう。(Triangulate)
  • テストが通るように修正しよう。(Green)

Step 6

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

Step 7

  • 新しいスタックに 3 を push した後、5 を push し、pop すると size が 1 であること。

Step 8

  • 新しいスタックに 3 を push した後、5 を push し、pop すると 5 が返ること。

About


Languages

Language:Ruby 100.0%