Tôi đang thiết lập môi trường thử nghiệm của mình với Rspec + Capybara, nhưng tôi nhận được last_response không xác định này. Tôi đã tìm kiếm thông qua web và SO. Tôi tìm thấy một vài điều về phiên bản, sử dụng git repo thay vì nguồn rubygem vv ... Nhưng nó không thay đổi một đầu mối cho tôi.Rspec + Capybara: undefined last_response
Ở đây backtrace: rspec --backtrace đặc tả/controllers/api/plist/providers_listing_spec.rb thất bại:
1) Api::Plist::ProvidersController should return a successfull plist containing a list of providers
Failure/Error: last_response.status.shoud be_success
NameError:
undefined local variable or method `last_response' for #<RSpec::Core::ExampleGroup::Nested_1:0x105658e10>
# ./.gems/ruby/1.8/gems/rspec-expectations-2.6.0/lib/rspec/matchers/method_missing.rb:9:in `method_missing'
# ./.gems/ruby/1.8/gems/actionpack-3.0.5/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing'
# ./spec/controllers/api/plist/providers_listing_spec.rb:19
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example.rb:48:in `instance_eval'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example.rb:48:in `run'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example.rb:107:in `with_around_hooks'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example.rb:45:in `run'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:294:in `run_examples'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:290:in `map'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:290:in `run_examples'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:262:in `run'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:24:in `run'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:24:in `map'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:24:in `run'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/reporter.rb:12:in `report'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:21:in `run'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/runner.rb:80:in `run_in_process'
# /Library/Ruby/Gems/1.8/gems/rspec-core-2.6.4/lib/rspec/core/runner.rb:69:in `run'`
Dưới đây là cấu hình đá quý của tôi để kiểm tra:
gem 'ruby-prof' # perf
gem 'rspec-rails', :git => 'git://github.com/rspec/rspec-rails.git'
gem 'shoulda' # Shoulda
gem 'factory_girl_rails' #=> mocking
gem 'capybara', :git => "http://github.com/jnicklas/capybara.git"
gem 'database_cleaner'
gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i #guard mac dependency
gem 'guard-livereload' # browser reloading
gem 'guard-rspec'
gem 'guard-test'
gem 'growl' #grow notification
tôi đang sử dụng database_clearner để xử lý với mongo db ...
Và cho đến bây giờ tôi không thực sự sử dụng:
require 'spec_helper'
describe Api::Plist::ProvidersController, :type => :api do
let (:user) {Factory(:confirmed_user)}
let (:api_account) {user.new_api_account}
let (:api_token) {api_account.authentication_token}
let (:email) {api_account.email}
it "should return a successfull plist containing a list of providers" do
get 'index', :auth_token => api_token, :email => email
last_response.status.shoud be_success
last_response.body.should eql({:sucess => true}.to_plist.to_s)
end
end
Sau đây là các bài viết Tôi đã đọc, ngay cả khi họ nói chuyện chủ yếu về webrat ...:
- http://codingfrontier.com/integration-testing-setup-with-rspec-2-and-ca
- https://github.com/rspec/rspec-rails/issues/174
- ...
Nếu Bất cứ ai cũng có một ý tưởng về việc phải làm gì, phiên bản đá quý nào để sử dụng?