问题描述
我正在尝试使用 Ruby 中的 Minitest 运行一些测试用例。
这是我正在测试的班**:
# square_root.rb
class SquareRoot
def square_root(value)
return nil if value < 0
Math.sqrt(value).round
end
end
这是我的测试用例:
# square_root_test.rb
require 'minitest/autorun'
class SquareRoottest <Minitest::Test
def test_that_square_root_of_9_is_3
assert_equal 3,square_root(9)
end
def test_that_square_root_of_17_is_4
assert_equal 4,square_root(17)
end
def test_that_square_root_of_24_is_5
assert_equal 5,square_root(24)
end
def test_that_square_root_of_negative_number_is_nil
assert_equal nil,square_root(-1)
end
end
但是当我运行下面的命令来运行测试时:
ruby square_root_test.rb
我在下面收到弃用警告:
Run options: --seed 50741
# Running:
DEPRECATED: Use assert_nil if expecting nil from square_root_test.rb:26. This will
fail in Minitest 6.
....
Finished in 0.000839s,4769.9228 runs/s,4769.9228 assertions/s.
4 runs,4 assertions,0 failures,0 errors,0 skips
解决方法
这是我修复的方式:
继弃用警告消息之后,我简单地替换了断言:
assert_equal nil,square_root(-1)
使用
assert_nil square_root(-1)
OR
assert_nil(square_root(-1))
所以我的测试文件之后看起来像这样:
# square_root_test.rb
require 'minitest/autorun'
class SquareRootTest <Minitest::Test
def test_that_square_root_of_9_is_3
assert_equal 3,square_root(9)
end
def test_that_square_root_of_17_is_4
assert_equal 4,square_root(17)
end
def test_that_square_root_of_24_is_5
assert_equal 5,square_root(24)
end
def test_that_square_root_of_negative_number_is_nil
assert_nil square_root(-1)
end
end
注意:也删除了逗号,
标点符号。
仅此而已。
我希望这会有所帮助