我正在编写一个测试助手,它有这个方法:
def todo msg = ''
assert false, '@TODO: ' + msg
end
基本上我想要一种快速测试失败的方法。接下来,我想测试这个方法(因为它将封装在一个可发送的帮助器中)。所以我想写这样的东西:
test 'todo' do
result = todo
expected = '@TODO: '
assert_equal expected, result
end
但是当assert false
被调用时它就失败了。那么,我该如何测试这种方法呢?
答案 0 :(得分:5)
这个助手应该与Test::Unit
一起使用,是吗?我相信assert false
会引发Test::Unit
捕获的异常。您可以将todo
块中的begin...rescue
包裹起来并捕获该异常。
Ruby标准库中的test/unit
实际上是Minitest::Unit
- 当断言失败时,它会引发Minitest::Assertion
异常。你可以rescue
那个。
对于“真实”Test::Unit
,当断言失败时,它会引发Test::Unit::AssertionFailedError
。