mercredi, mars 05, 2008

Assertion en ruby

Je me demandais si le mot clef "assert" existe en ruby... je ne l'ai pas trouvé mais par contre c'est très simple de le réinventer:

def assert(*msg)
  raise "Assertion failed ! #{msg}" unless yield if $DEBUG
end
Un exemple d'utilisation:

$DEBUG = true
i = 0
assert("mon msg") {i == 1}
Résultat:
Exception `RuntimeError' at assert.rb:2 - Assertion failed ! mon msg
assert.rb:2:in `assert': Assertion failed ! mon msg (RuntimeError)
        from assert.rb:7
source: dzone.com

Technorati tags:

1 commentaire:

Anonyme a dit…

La librairie Test::Unit (incluse dans la stdlib ruby) fournit le support relatif aux tests unitaires et aux assertions.