minitest 断言自定义断言失败

minitest assert custom assertion fails

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

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

有办法吗?

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

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

这将在摘要的 assert_raises 中包含对 assert 的调用,这可能与您期望的不完全一样,但在其他方面是有效的。