Rspec问题与方法

时间:2014-06-19 00:44:46

标签: ruby-on-rails ruby-on-rails-3 rspec ruby-on-rails-3.2

我试图进行简单的验证,主要问题是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

1 个答案:

答案 0 :(得分:0)

pull requesthave(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)