开发者

how to put assertions in ruby code

开发者 https://www.devze.com 2023-01-07 19:55 出处:网络
I want to use the assertions and put valuidations in my ruby code (e.g: che开发者_高级运维cking if a zip file is created, label is present, message in the text area, etc). I have put a few assert stat

I want to use the assertions and put valuidations in my ruby code (e.g: che开发者_高级运维cking 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.


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 }


Use the solid_assert gem to add assertions to Ruby.

See:
solid_assert: A simple Ruby assertion utility
Is it idiomatic Ruby to add an assert( ) method to Ruby's Kernel class?


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

throw 'Error message' unless thing == expected

0

精彩评论

暂无评论...
验证码 换一张
取 消