MiniTest:断言失败时不应跳过函数

时间:2017-07-18 09:43:56

标签: ruby minitest

目前,我的一个测试函数有8个断言。如果第一个失败,它将跳过剩余的断言并转到下一个函数。如何改变这种行为?

1 个答案:

答案 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

您可以从中获得更好的错误消息,因为当某些内容发生故障以及它发生故障时,它会很明显。