Stub メルマガのネタ

Time.nowって書いても、stub!で乗っ取れるので心配無用.

class Greeting
  def say
     return "hello!" if Time.now.hour == 9
     return "good bye!" if Time.now.hour == 18
  end
end

describe Greeting, "at 9:00" do
  before(:each) do
    Time.stub!(:now).and_return(Time.gm(*"2007-10-01-09-00".split("-")))
    @greeting = Greeting.new
  end
  
  it "should say 'hello!'" do
    @greeting.say.should == "hello!"
  end
end

describe Greeting, "at 18:00" do
  before(:each) do
    Time.stub!(:now).and_return(Time.gm(*"2007-10-01-18-00".split("-")))
    @greeting = Greeting.new
  end
  
  it "should say 'good bye!'" do
    @greeting.say.should == "good bye!"
  end
end