我试图进行简单的验证,主要问题是Rails版本(我一直在使用RSpec和Rails 4),因为我在Rails 3.2和Ruby 1.9.3中使用它
这是我的模型中的代码
expect(section).to have(1).errors_on(:name)
并返回此错误
1) Admin::Section is invalid without name
Failure/Error: expect(section).to have(1).errors_on(:name)
NoMethodError:
undefined method `have' for #<RSpec::ExampleGroups::AdminSection:0x007f81cf6e72d0>
我的宝石列表就是这个
* rspec-core (3.0.1)
* rspec-expectations (3.0.1)
* rspec-mocks (3.0.1)
* rspec-rails (3.0.1)
* rspec-support (3.0.0)
我可以通过应该be_valid 来通过,但不推荐使用。
如果我使用 have_at_least ,则错误发生在 errors_on
答案 0 :(得分:0)
见pull request。 have(n)
提取了rspec-collection_matchers gem
您可以加入它或只使用以下其中一项:
expect(section.error_on(:name)size).to eq(1)
expect(section.error_on(:name)).to be_present
expect(section).to have_validation_error("your error message").on(:name)