I am writing my first unit tests with Test::Unit and I have reached a point where I need to compare two numbers. Much to my surprise, I have discovered that none of the following were available:
assert_greater_than
assert_lesser_than
assert_greater_or_equal_than
assert_lesser_or_equal_than
Is this normal? How should I do it then?
Thanks
Rather than provide a bunch of different assertions as you suggest, Test::Unit provides the method assert_operator
, used like this:
assert_operator x, :>, y
assert_operator x, :>=, y
etc.
How about this simple thing,
assert x>y
Here are some functions you can put in test/test_helper.rb
def assert_gt(a, b)
assert_operator a, :>, b
end
def assert_gte(a, b)
assert_operator a, :>=, b
end
def assert_lt(a, b)
assert_operator a, :<, b
end
def assert_lte(a, b)
assert_operator a, :<=, b
end
Then call like so:
assert_gt 6, 3
assert_gte 5, 5
assert_lt 4, 5
assert_lte 5, 5
来源:https://stackoverflow.com/questions/5819760/testunit-rails-how-to-assert-one-number-is-greater-than-another-one