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`”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)