目前,我的一个测试函数有8个断言。如果第一个失败,它将跳过剩余的断言并转到下一个函数。如何改变这种行为?
答案 0 :(得分:2)
简而言之:你做不到。
我认为你有类似的东西:
def test_foo
assert_equal 0, Foo.calculate(nil)
assert_equal 0, Foo.calculate()
assert_equal 12, Foo.calculate(8, 4)
assert_equal 0, Foo.calculate(4, -4)
...
end
单个测试方法中的许多断言。你可以做的是将它分成多种测试方法:
def test_result_when_input_is_nil
assert 0, Foo.calculate(nil)
end
def test_result_when_no_input
assert 0, Foo.calculate()
end
def test_calculates_result
assert 12, Foo.calculate(8, 4)
end
def test_can_handle_negative_numbers
assert 0, Foo.calculate(4, -4)
end
您可以从中获得更好的错误消息,因为当某些内容发生故障以及它发生故障时,它会很明显。