0

[danish] ironRuby BDD test af JuleGolf

by klh 11. december 2008 15:15

Jeg har lavet en BDD style ironRuby test af Julegolf konkurrencen på kodehoved.dk: 

require 'test'
require 'c:\temp\JuleGolfLib.dll'
Nsp = JuleGolfLib

describe "Jule Golf"  do
  it "should return integer when given 'en' and 'et'" do
      juleGolf = Nsp::TTN
      juleGolf.TextToNumber("et").should == 1;
      juleGolf.TextToNumber("en").should == 1;
   end
  
    it "should return integer when given numbers below 10 and above 1" do
      juleGolf = Nsp::TTN
      juleGolf.TextToNumber("to").should == 2;
      juleGolf.TextToNumber("tre").should == 3;
      juleGolf.TextToNumber("fire").should == 4;
      juleGolf.TextToNumber("fem").should == 5;
      juleGolf.TextToNumber("seks").should == 6;
      juleGolf.TextToNumber("syv").should == 7;
      juleGolf.TextToNumber("otte").should == 8;
      juleGolf.TextToNumber("ni").should == 9;
     
   end
  
   it "should return integer when given numbers from the 10 tabel" do
      juleGolf = Nsp::TTN
      juleGolf.TextToNumber("ti").should == 10;
      juleGolf.TextToNumber("tyve").should == 20;
      juleGolf.TextToNumber("tredive").should == 30;
      juleGolf.TextToNumber("fyrre").should == 40;
      juleGolf.TextToNumber("halvtreds").should == 50;
      juleGolf.TextToNumber("tres").should == 60;
      juleGolf.TextToNumber("halvfjerds").should == 70;
      juleGolf.TextToNumber("firs").should == 80;
      juleGolf.TextToNumber("halvfems").should == 90;
   end
  
      it "should return integer when given the teens" do
        juleGolf = Nsp::TTN
      juleGolf.TextToNumber("elleve").should == 11;
      juleGolf.TextToNumber("tolv").should == 12;
      juleGolf.TextToNumber("tretten").should == 13;
      juleGolf.TextToNumber("fjorten").should == 14;
      juleGolf.TextToNumber("femten").should == 15;
      juleGolf.TextToNumber("seksten").should == 16;
      juleGolf.TextToNumber("sytten").should == 17;
      juleGolf.TextToNumber("atten").should == 18;
      juleGolf.TextToNumber("nitten").should == 19;
   end
  
    it "should return integer when given random numbers below 100" do
        juleGolf = Nsp::TTN
      juleGolf.TextToNumber("niogtyve").should == 29;
      juleGolf.TextToNumber("toogtredive").should == 32;
      juleGolf.TextToNumber("femoghalvtreds").should == 55;
      juleGolf.TextToNumber("toogfyrre").should == 42;
      juleGolf.TextToNumber("niogtredive").should == 39;
      juleGolf.TextToNumber("toogtres").should == 62;
      juleGolf.TextToNumber("fireoghalvfjerds").should == 74;
      juleGolf.TextToNumber("enogfirs").should == 81;
      juleGolf.TextToNumber("nioghalvfems").should == 99;
  end
 
  it "should be able to test through static methods" do
      juleGolf = Nsp::TTN
      juleGolf.TextToNumber("niogtyve").should == 29;
      end
end

 

Test biblioteket ser sådan ud:

# no prefix or _ local variable
# $ global variable
# @ instance variable
# @@ class (static) variable

$examples = 0
$messages = []

class PositiveExpectation
  def initialize(obj)
    @obj = obj
  end
 
  def ==(other)
    $examples += 1
    if @obj != other
      $messages << "Want #{other.inspect} got #{@obj.inspect}"
      print "E "
    else
      print "OK "
    end
    end
end

class Object
  def should
    PositiveExpectation.new(self)
  end
end

def it(description)
  print "\n it #{description}: "
  yield
end

def describe(description)
  print "#{description}"
  yield
  puts "\nend\n"
end

at_exit do
  puts "#{$messages.length} / #{$examples} failed"
  if $messages.length > 0
    puts "Failures: "
    $messages.each { |m| puts "- #{m}"}
  end
end


 

Tags:

Ruby

Kommentarer

Tilføj kommentar


(Viser dit Gravatar icon)  

  Country flag

biuquote
  • Kommentar
  • Eksempel
Loading



Powered by BlogEngine.NET 1.4.5.0
Original Design by Laptop Geek, Adapted by onesoft