我們在Ruby on Rails中有一個很大的應用程序,並帶有許多過濾器。其中一些過濾器可能很複雜。我正在尋找一種通過單元測試單獨測試這些過濾器的方法。現在我通過測試它們,通過在功能測試中使用它們的操作來測試它們。這只是感覺不到正確的方式。
有沒有人有此建議或經驗?如何在Ruby on Rails和測試中測試控制器過濾器::單元
1
A
回答
0
這取決於你的過濾器在做什麼。
此:http://movesonrails.com/journal/2008/1/23/testing-your-application-controller-with-rspec.html
而且還學習如何使用摩卡會讓你很長的路要走。
3
記住過濾器只是一種方法。
鑑於此:
class SomeController
before_filter :ensure_awesomeness
...
end
沒有理由你不能只是這樣做:
SomeController.new.ensure_awesomeness
,然後檢查它調用redirect_to的或是別的什麼應該做
0
獵戶我有在少數事件中與此相干。此外,大多數的時間篩選器是私人所以你必須做一個發送:
SomeController.new.send(:some_filter)
1
我a post單元測試before_filters輕鬆,你不妨去看看。希望它會有所幫助。
0
我遇到過這個問題。
如何執行需要請求的操作的過濾器。即使用閃存
示例是Authlogic require_user方法不會僅僅通過使用ApplicationController.new.send(:some_filter)而起作用。
人對如何在隔離測試這種事情一些非黑客的想法? (我通過創建一個額外的虛擬控制器,我只用於測試使用這樣做。)
1
您可以使用此代碼測試:
require "test_helper"
describe ApplicationController do
context 'ensure_manually_set_password' do
setup do
class ::TestingController < ApplicationController
def hello
render :nothing => true
end
end
NameYourApp::Application.routes.draw do
get 'hello', to: 'testing#hello', as: :hello
end
end
after do
Rails.application.reload_routes!
end
teardown do
Object.send(:remove_const, :TestingController)
end
context 'when user is logged in' do
setup do
@controller = TestingController.new
end
context 'and user has not manually set their password' do
let(:user) { FactoryGirl.build(:user, manually_set_password: false) }
setup do
login_as user
get :hello
end
should 'redirect user to set their password' do
assert_redirected_to new_password_path(user.password_token)
end
end
end
end
end
它的代碼是從http://robots.thoughtbot.com/testing-a-before-filter原來, 我改變爲Rails 3
相關問題
- 1. Ruby on Rails單元測試
- 2. 單元測試控制器
- 3. Rails間隙,單元測試控制器
- 4. 如何單元測試過濾器?
- 5. Shoulda:測試控制器過濾器
- 6. 如何在rspec控制器測試期間登錄rails控制器過濾器
- 7. 單元測試使用$過濾器控制器功能(「翻譯」)
- 8. Ruby on rails,單元測試錯誤
- 9. 測試Ruby on Rails
- 10. AngularJS單元測試控制器$ state.go和
- 11. 單元測試從單個測試中的所有控制器
- 12. 你如何測試oauth的單元測試控制器?
- 13. Rails控制器測試
- 14. Rails控制器測試:如何在測試時禁用控制器的before_filter?
- 15. 是否可以在Ruby on Rails中調試單元測試?
- 16. 無法從控制器測試訪問燈具Ruby on Rails
- 17. Rails的測試控制器
- 18. Grails中的單元測試控制器
- 19. Vue.js過濾器和測試
- 20. 如何測試JSON路由和控制器在rails控制檯
- 21. 單元測試控制器方法?
- 22. MVC單元測試控制器
- 23. 單元測試AngularJS控制器失敗
- 24. 單元測試的Grails控制器
- 25. 單元測試AngularJS模塊控制器
- 26. CakePHP單元測試模擬控制器
- 27. 如何測試Ruby on Rails功能測試中的JSON結果?
- 28. 測試一個函數是否在Ruby on Rails單元測試中被調用
- 29. 使用RSpec測試Rails控制器 - 如何測試:current_account.projects
- 30. MVC控制器單元測試寫作
如果篩選器位於給定操作的列表中,但它不會測試篩選器本身的代碼,這對測試非常有用。 – scottd 2008-10-30 18:52:59
不幸的是,鏈接被破壞。 – 2011-02-01 22:18:22