如何在 Rails 中使用带有 Minitest 规格样式的 shoulda-matchers?

How to use shoulda-matchers with Minitest Specs style in Rails?

Minitest 用法的 shoulda-matchers 文档提供了如何在断言样式中使用它们的示例,如下所示:

class PersonTest < ActiveSupport::TestCase
  should validate_presence_of(:name)
end

但是如何使用 Minitest 的规范样式使用它们?

以下会产生错误:Minitest::UnexpectedError: NoMethodError: undefined method 'validate_presence_of'

describe Person do
  it { should validate_presence_of(:name) }
end

其实和原来的做法很像。对于我的个人项目之一,这就是我的 VideoTest class 的样子,我一直在使用 MiniTest Spec。

require 'test_helper'

describe VideoTest do
  let(:video) { build :video }

  should belong_to :course

  should validate_presence_of :title
  should validate_presence_of :description
end