Pet*_*vin 57
虽然可以使用具有新期望语法的shoulda-matchers,如下所示:
it 'should validate presence of :email' do
expect(subject).to validate_presence_of :email
end
Run Code Online (Sandbox Code Playgroud)
或者更简洁但更不易读:
it { expect(subject).to validate_presence_of :email }
Run Code Online (Sandbox Code Playgroud)
should这些匹配器通常使用的单行格式在2.14中明确支持,即使这样config.syntax == :expect.何时should与隐式主题一起使用,如:
describe User
it { should validate_presence_of :email }
end
Run Code Online (Sandbox Code Playgroud)
它不依赖猴子修补Kernel,should否则取决于.
这将在https://github.com/rspec/rspec-expectations/blob/master/Should.md中介绍.实际上,该文档甚至使用上面的shoulda匹配器示例来说明此异常.
另请参阅在RSpec-2.11中使用带有`expect`的隐式`subject`,它讨论了一个配置选项,它允许您使用它作为替代it.
expect_it { to validate_presence_of :email }
Run Code Online (Sandbox Code Playgroud)
更新:从RSpec 3.0(beta2)开始,您还可以使用:
it { is_expected.to validate_presence_of :email }
Run Code Online (Sandbox Code Playgroud)