任何特殊的断言来测试结果整数是否在一个范围内

bar*_*erd 1 ruby unit-testing

我想测试实例变量是否位于一系列数字中:

#part of the tested class
class Item
  def initialize(value = 70 + rand(30))
    @value = value
  end
Run Code Online (Sandbox Code Playgroud)

我在minitest断言列表中尝试了断言,但它们没有用.我通过使用assert_in_delta解决了这个问题,如下所示:

#test_value.rb
class ValueTestCase < Test::Unit::TestCase
  def test_if_value_in_range
    item = Item.new
    assert_in_delta(85, item.value, 15)
  end
end
Run Code Online (Sandbox Code Playgroud)

但是想知道是否有正式的断言.

ste*_*lag 8

assert(item.value.between?(70, 100))
Run Code Online (Sandbox Code Playgroud)


Nik*_* B. 5

另一种方法是使用Range#include?:

assert_includes 70..100, p.value
Run Code Online (Sandbox Code Playgroud)