0
我有RSpec測試的問題。我正在使用FactoryGirl,Capybara 2. *並嘗試測試我的網站行爲。RSpec。 Rails 3.2。實例變量檢查。行爲測試
測試場景: 用戶點擊sign_in按鈕(設計控制器),他被重定向到root_path(由MyController管理)。在重定向before_filter之後:setup_params應該分配給@app變量(在action中:MyController中的find_apps)一些值。我想確保@app不是零,而是賦值。
這裏是我的sign_in_spec.rb
require "spec_helper.rb"
require "mymodel.rb"
describe MyContoller, :type => :feature do
before do
visit '/users/sign_in'
end
it "Shall redirect to user and ensure that @app is not nil" do
user = FactoryGirl.build(:user_monit)
fill_in "user[email]", with: user.email
fill_in "user[password]", with: user.password
#expect {click_button "Sign in"}.to change {@myapp}.from(nil)
click_button "Sign in"
get :find_apps
assigns(:myapp).should_not be_nil
end
end
在我spec_helper.rb要求部分
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rails'
require 'capybara/rspec'
require 'mocha/setup'
require 'factory_girl'
....
config.include RSpec::Rails::RequestExampleGroup, type: :feature
我有幾個錯誤:
1) result should have changed, but is still nil
2) bad argument error for get :find_apps (ArgumentError: bad argument (expected URI object or URI string))
我在做什麼錯?
在此先感謝!
謝謝,但我有得到ActiveRecord :: RecordInvalid:錯誤記錄無效。當我使用FactoryGirl.build時,我可以通過任何測試重定向 - 「斷言has_selector?」表#admin-credit-application'「在click_button」登錄「後返回true –
如果你不能創建:user_monit也許與你工廠不好。 – Adeptus
它的控制器測試不被接受,所以你可以像租用測試: [link](https://github.com/plataformatec/devise/wiki/How-To:-Controllers-tests-with-Rails-3-(and- rspec)) 如果你想與Capybara接受測試,你可以找到幫助僱用: [鏈接](https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara) – Adeptus