测试模型与RSpec使用设计 [英] Testing models with RSpec using devise
本文介绍了测试模型与RSpec使用设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我收到此错误:
失败:
/ pre>
1)组应该创建新组
失败/错误:无法从backtrace找到匹配行
NoMethodError:
未定义的方法`env'为nil:NilClass
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.7/lib/active_support /whiny_nil.rb:48:in`method_missing'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/devise-1.4.2/lib/devise/test_helpers.rb: 25:在`setup_controller_for_warden'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-rails-2.5.0/lib/rspec/rails/adapters.rb:11 :在'block(2级)'在设置'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/ hooks.rb:29:在`instance_eval'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/hooks .rb:29:在`run_in'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p18 0 / gems / rspec-core-2.5.2 / lib / rspec / core / hooks.rb:64:在`block in run_all'
#/home/hrvoje/.rvm/gems/ruby-1.9.2 -p180 / gems / rspec-core-2.5.2 / lib / rspec / core / hooks.rb:64:在each
#/home/hrvoje/.rvm/gems/ruby-1.9.2- p180 / gems / rspec-core-2.5.2 / lib / rspec / core / hooks.rb:64:在`run_all'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180 /gems/rspec-core-2.5.2/lib/rspec/core/hooks.rb:110:in`run_hook'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/ gems / rspec-core-2.5.2 / lib / rspec / core / example_group.rb:191:在``eval_before_eachs'中
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180 /gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb:191:in`each'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/ gems / rspec-core-2.5.2 / lib / rspec / core / example_group.rb:191:在`eval_before_eachs'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems /rspec-core-2.5.2/lib/rspec/core/example.rb:144:in`run_before_each'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/ rspec的核 - 2.5.2 / LIB / rspec的/核心/ E xample.rb:48:在`block(2级)'运行'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib /rspec/core/example.rb:106:in`with_around_hooks'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/ rspec / core / example.rb:46:在`block in run'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib /rspec/core/example.rb:99:in`block in with_pending_capture'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/ lib / rspec / core / example.rb:98:在`catch'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib /rspec/core/example.rb:98:in`with_pending_capture'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/ rspec / core / example.rb:45:在`run'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec /core/example_group.rb:262:in`block in run_examples'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/ rspec的/型芯/ example_group.r b:258:在`map'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb :258:在`run_examples'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb: 232:在`run'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:27 :在`block(2级)'运行'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/ command_line.rb:27:在`map'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/command_line .rb:27:在`block in run'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/记者:12:在'报告'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/command_line .rb:24:在`run'
#/home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/runner。 rb:55:在`run_in_process'
#/home/hrvoje/.rvm /gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:46:in`run'
#/home/hrvoje/.rvm/ gems / ruby-1.9.2-p180 / gems / rspec-core-2.5.2 / lib / rspec / core / runner.rb:10:在`block in autorun'
我已经包括
config.include Devise ::我的spec_helper.rb中的TestHelpers
这是我的模型测试文件require'spec_helper'
describe Group do
before:each do
@group = Factory.build(:group)
end
它应该创建新组do
Group.create!(@ group)
end
end
这是我的factory.rb文件
Factory.define:group do | group |
group.name示例组
group.description示例描述
end
如何解决这个问题?
解决方案
config.include设计: :TestHelpers,:type => :控制器
I am using devise for authentication in my rails app and I'm unable to test any model with RSpec. Controller specs work fine, but I'm unable to make model specs work.
I am getting this error:
Failures: 1) Group should create new group Failure/Error: Unable to find matching line from backtrace NoMethodError: undefined method `env' for nil:NilClass # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.7/lib/active_support/whiny_nil.rb:48:in `method_missing' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/devise-1.4.2/lib/devise/test_helpers.rb:25:in `setup_controller_for_warden' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-rails-2.5.0/lib/rspec/rails/adapters.rb:11:in `block (2 levels) in setup' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/hooks.rb:29:in `instance_eval' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/hooks.rb:29:in `run_in' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/hooks.rb:64:in `block in run_all' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/hooks.rb:64:in `each' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/hooks.rb:64:in `run_all' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/hooks.rb:110:in `run_hook' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb:191:in `block in eval_before_eachs' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb:191:in `each' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb:191:in `eval_before_eachs' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example.rb:144:in `run_before_each' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example.rb:48:in `block (2 levels) in run' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example.rb:106:in `with_around_hooks' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example.rb:46:in `block in run' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example.rb:99:in `block in with_pending_capture' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example.rb:98:in `catch' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example.rb:98:in `with_pending_capture' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example.rb:45:in `run' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb:262:in `block in run_examples' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb:258:in `map' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb:258:in `run_examples' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/example_group.rb:232:in `run' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:27:in `block (2 levels) in run' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:27:in `map' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:27:in `block in run' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/reporter.rb:12:in `report' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:24:in `run' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:55:in `run_in_process' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:46:in `run' # /home/hrvoje/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:10:in `block in autorun'
I have included
config.include Devise::TestHelpers
in my spec_helper.rb. Here is my model test file
require 'spec_helper' describe Group do before :each do @group = Factory.build(:group) end it "should create new group" do Group.create!(@group) end end
This is my factories.rb file
Factory.define :group do |group| group.name "Example group" group.description "Example description" end
How to fix this?
解决方案config.include Devise::TestHelpers, :type => :controller
这篇关于测试模型与RSpec使用设计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文