Harry
Harry

Reputation: 211

how to put assertions in ruby code

I want to use the assertions and put valuidations in my ruby code (e.g: checking if a zip file is created, label is present, message in the text area, etc). I have put a few assert statements like assert @selenium.is_text_present(textMessage), but they don't work.

Please let me know if any ruby gem for assertions is to be installed.

Upvotes: 21

Views: 19969

Answers (3)

Jason L.
Jason L.

Reputation: 1215

If you're just developing or debugging and need a quick one-liner

throw 'Error message' unless thing == expected

Upvotes: 2

Mark Rushakoff
Mark Rushakoff

Reputation: 258358

For simple asserts, you're probably best off rolling your own assert method taking a block:

ruby-1.9.1-p378 > class AssertionError < RuntimeError
ruby-1.9.1-p378 ?>  end
 => nil 
ruby-1.9.1-p378 > def assert &block
ruby-1.9.1-p378 ?>  raise AssertionError unless yield
ruby-1.9.1-p378 ?>  end
 => nil 
ruby-1.9.1-p378 > assert { 1 > 0 }
 => nil 
ruby-1.9.1-p378 > assert { 5 == 12 }
AssertionError: AssertionError
    from (irb):8:in `assert'
    from (irb):11
    from /Users/mr/.rvm/rubies/ruby-1.9.1-p378/bin/irb:17:in `<main>'

In copypastastable form:

class AssertionError < RuntimeError
end

def assert &block
    raise AssertionError unless yield
end

i = 1
assert {i >= 0}
assert { 5 == 12 }

Upvotes: 32

Related Questions