ruby-on-rails – RSpec 1.3.3 Rails 2.3.9 Webrat 0.7.3“未定义方法`assign`”

ruby-on-rails – RSpec 1.3.3 Rails 2.3.9 Webrat 0.7.3“未定义方法`assign`”,第1张

概述我的规格 require 'spec_helper'describe 'user_sessions/new.html.erb' do let (:user_session) { mock_model(UserSession).as_null_object } before do assign(:user_session, user_session) end it @H_419_2@ 我的规格

require 'spec_helper'describe 'user_sessions/new.HTML.erb' do  let (:user_session) { mock_model(UserSession).as_null_object }  before do    assign(:user_session,user_session)  end  it 'should have the sign in header' do    render    rendered.should contain('Sign in')  endend

抛出

1)NoMethodError in 'user_sessions/new.HTML.erb should have the sign in header'undefined method `assign' for #<Spec::Rails::Example::VIEwExampleGroup::Subclass_1:0x1036835e0>

宝石:

group :test,:cucumber do  gem "cucumber-rails","0.3.2"  gem "rspec-rails","1.3.3"  gem "database_cleaner","0.5.0"  # gem "capybara","0.3.9"  gem "webrat"  gem "selenium-clIEnt","1.2.18"  gem "sqlite3-ruby","1.3.1"  gem "email_spec","~> 0.6.3",:require => 'spec'  gem "factory_girl"  gem "launchy"end

和spec_helper.rb

# This file is copIEd to ~/spec when you run 'ruby script/generate rspec'# from the project root directory.ENV["RAILS_ENV"] = 'test'require file.expand_path(file.join(file.dirname(__file__),'..','config','environment'))require 'spec/autorun'require 'spec/rails'# Uncomment the next line to use webrat's matchersrequire 'webrat/integrations/rspec-rails'# Requires supporting files with custom matchers and macros,etc,# in ./support/ and its subdirectorIEs.Dir[file.expand_path(file.join(file.dirname(__file__),'support','**','*.rb'))].each {|f| require f}Spec::Runner.configure do |config|  # If you're not using ActiveRecord you should remove these  # lines,delete config/database.yml and disable :active_record  # in your config/boot.rb  config.use_transactional_fixtures = true  config.use_instantiated_fixtures  = false  config.fixture_path = RAILS_ROOT + '/spec/fixtures/'  # == Fixtures  #  # You can declare fixtures for each example_group like this:  #   describe "...." do  #     fixtures :table_a,:table_b  #  # Alternatively,if you prefer to declare them only once,you can  # do so right here. Just uncomment the next line and replace the fixture  # names with your fixtures.  #  # config.global_fixtures = :table_a,:table_b  #  # If you declare global fixtures,be aware that they will be declared  # for all of your examples,even those that don't use them.  #  # You can also declare which fixtures to use (for example fixtures for test/fixtures):  #  # config.fixture_path = RAILS_ROOT + '/spec/fixtures/'  #  # == Mock Framework  #  # RSpec uses its own mocking framework by default. If you prefer to  # use mocha,flexmock or RR,uncomment the appropriate line:  #  # config.mock_with :mocha  # config.mock_with :flexmock  # config.mock_with :rr  #  # == Notes  #  # For more information take a look at Spec::Runner::Configuration and Spec::Runnerend
解决方法 这看起来像版本混乱.

notes on RSpec2 for Rails 3说

assign(key,value) replaces assigns[key] = value from rspec-rails-1.3

正如您在早期版本中所做的那样,您可能想要旧版本.所以尝试改变

assign(:user_session,user_session)

assigns[:user_session] = user_session
@H_419_2@ 总结

以上是内存溢出为你收集整理的ruby-on-rails – RSpec 1.3.3 Rails 2.3.9 Webrat 0.7.3“未定义方法`assign`”全部内容,希望文章能够帮你解决ruby-on-rails – RSpec 1.3.3 Rails 2.3.9 Webrat 0.7.3“未定义方法`assign`”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1282406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存