minitest断言自定义断言失败

时间:2015-01-08 22:46:01

标签: ruby unit-testing minitest

我在我的minitests中使用自定义断言,我想对我的断言进行单元测试。当然,我可以测试快乐的路径,但我想声称测试实际上失败了。

module Minitest
  module Assertions
    def assert_exists(value, msg = nil)
      assert(!value.to_s.empty?, msg)
    end
  end
end

在我的测试中,我想写一些类似

的内容
describe 'Assertions' do
  it 'is empty' do
    assert_raises assert_exists('')
  end
end

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:4)

这样的东西? (您需要指定您期望的异常,并将调用作为块传递):

describe 'Assertions' do
  it 'is empty' do
    assert_raises(Minitest::Assertion) do
      assert_exists('')
    end
  end
end

这将包括在摘要中assert中对assert_raises的调用,这可能与您的预期完全不同,但在其他方面有效。