首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应使用rspec2β5和rails3 beta2的宏

应使用rspec2β5和rails3 beta2的宏
EN

Stack Overflow用户
提问于 2010-04-07 07:54:14
回答 3查看 2.2K关注 0票数 5

我在rspec模型测试中设置了Rspec2、beta5和beta5宏,如下所示。

=================

更新2011-2月18日

现在我们可以从盒子里拿出手来了。

只需在Gemfile中添加gem shoulda-matchers,而在spec_helper或任何黑客中不添加任何其他内容。它就这么跑了。

=================

Gemfile

代码语言:javascript
复制
group :test do
  gem "rspec", ">= 2.0.0.beta.4"
  gem "rspec-rails", ">= 2.0.0.beta.4"
  gem 'shoulda',          :git => 'git://github.com/bmaddy/
shoulda.git'
  gem "faker"
  gem "machinist"
  gem "pickle",           :git => 'git://github.com/codegram/
pickle.git'
  gem 'capybara',         :git => 'git://github.com/jnicklas/
capybara.git'
  gem 'database_cleaner', :git => 'git://github.com/bmabey/
database_cleaner.git'
  gem 'cucumber-rails',   :git => 'git://github.com/aslakhellesoy/
cucumber-rails.git'
end

spec_helper.rb

代码语言:javascript
复制
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}

require 'shoulda'

Rspec.configure do |config|

规格/型号/出口规格.

代码语言:javascript
复制
require 'spec_helper'

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

当我运行规范时,我会得到以下错误。

代码语言:javascript
复制
[~/rails_apps/rails3_apps/automation (master)⚡] ➔ spec spec/models/
outlet_spec.rb
DEPRECATION WARNING: RAILS_ROOT is deprecated! Use Rails.root instead.
(called from join at /home/millisami/.rvm/gems/ruby-1.9.1-p378%rails3/
bundler/gems/shoulda-87e75311f83548760114cd4188afa4f83fecdc22-master/
lib/shoulda/autoload_macros.rb:40)
F

1) Outlet
    Failure/Error: it { should validate_presence_of(:name) }
    undefined method `validate_presence_of' for
#<Rspec::Core::ExampleGroup::Nested_1:0xc4dc138 @__memoized={}>
    # ./spec/models/outlet_spec.rb:4:in `block (2 levels) in <top
(required)>'

Finished in 0.0399 seconds
1 example, 1 failures
[~/rails_apps/rails3_apps/automation (master)⚡] ➔

为什么是“未定义的方法”?该上膛了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-11 07:19:01

使用RSpec 2.0.0.beta.19

代码语言:javascript
复制
# Gemfile
group :test do
  gem "rspec", ">= 2.0.0.beta.19"
  gem "rspec-rails", ">= 2.0.0.beta.17"
  gem "shoulda"
end

# spec/spec_helper.rb
require 'rspec/rails'
require 'shoulda/integrations/rspec2' # Add this line

# In your specs....
it { should validate_presence_of(:name) }

运行rake spec现在应该加载和运行规范,包括RSpec 2匹配器。

票数 7
EN

Stack Overflow用户

发布于 2010-04-12 21:25:08

认为这与rails3中新的验证语法有关:

验证:名称,:presence => true

票数 0
EN

Stack Overflow用户

发布于 2010-07-07 22:36:49

方法应该是validates_presence_of.你错过了's'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2590796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档