In the last weeks with the guys of the Firenze Ruby Social Club we started to think about organizing some Code Katas to play with test-driven development and yesterday we met to play with The Game of Life.
We used Ruby and RSpec with a simple setup that I want to report here if you’d like to play with some katas.
Although probably a Kata exercise won’t need many gems, in ruby projects I like to always use a
Gemfile with the required gems:
ruby '2.1.2' source 'https://rubygems.org' gem 'rspec'
bundle install you’re ready to start writing some code (if you don’t have the
bundle command, install the bundler gem with
gem install bundler).
A basic example to begin TDD with the Game of Life could be this:
require './game_of_life' describe GameOfLife::Universe do it "should have an initial size" do u = GameOfLife::Universe.new(6) expect(u.size).to eq(36) end end
module GameOfLife class Universe attr_reader :size def initialize(side) @size = side**2 end end end
With this minimalistic setup, the test passes:
~$ bundle exec rspec --color game_of_life_spec.rb . Finished in 0.00095 seconds (files took 0.0966 seconds to load) 1 example, 0 failures
You’re now ready to start playing with TDD in Ruby :)