Je suis novice en matière de tests, et j'ai quelques difficultés à essayer de faire un test fonctionnel.Tests fonctionnels Rails, erreur de routage
J'ai un messages_controller, et un user_controller ici. dans les routes, j'ai défini que les ressources des utilisateurs has_many ressources de message.
Maintenant, je suis en train de lancer un test simple dans le contrôleur de messages:
def test_index
get :index, { :user_id => 1 }
assert_template 'index'
end
Mais obtenir une erreur de routage des rails, qu'il ne peut pas trouver une route aux messages. Je ne veux pas inclure une route vers les messages uniquement à cause des tests. Comment puis-je dire au test qu'il doit accéder à partir de l'URL/users/messages?
la pleine routes.rb:
ActionController::Routing::Routes.draw do |map|
map.login 'login', :controller => :user_sessions, :action => :new
map.logout 'logout', :controller => :user_sessions, :action => :destroy
map.signin 'signin', :controller => :users, :action => :new
map.connect 'search/:action/:word', :controller => :search
map.connect 'search/:word', :controller => :search, :action => :index
map.resources :forums do |forums|
forums.resources :forum_posts, :collection => {:preview => :post }, :as => :posts do |post|
post.resources :forum_posts, :as => :reply
post.resources :reports
end
end
map.resources :newsitems, :as => :news do |news|
news.resources :comments do |comment|
comment.resources :reports
end
end
map.resource :user_sessions
map.resources :users,
:as => :profiles,
:controller => :profiles,
:has_many => [ :messages ]
map.resource :profiles
map.resource :me,
:controller => :me,
:has_many => [ :messages ]
map.resources :comments, :has_many => [ :reports ]
map.resources :forum_posts, :has_many => [ :reports ]
map.resources :reports
map.home '/', :controller => :home
map.root :controller => :home
map.namespace :admin do |admin|
admin.namespace :forum do |forum|
forum.resources :categories
forum.resources :posts
forum.resources :forums
forum.root :controller => :home
end
admin.resources :notices
admin.resources :users
admin.workflow 'workflow/:action', :controller => :workflow
admin.resources :newsitems
admin.resources :reports
admin.resources :comments
admin.root :controller => :home
end
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
MISE À JOUR
J'ai remarqué que tous les tests fonctionnels obtenir une erreur de routage. Même les simplistes aiment les nouvelles. Je ne sais pas pourquoi.
c'est ma règle pour les utilisateurs/messages: map.resources: utilisateurs, : as =>: profils, : controller =>: profils, : has_many => [ : messages] devrait-il encore fonctionner? parce que ce n'est pas – Tiago
Merci pour la mise à jour, et j'ai mis à jour ma réponse pour réfléchir. –
merci pour l'aide! J'ai ajouté les routes complètes.rb. Est-il possible qu'il y ait un conflit de route avec les messages? parce que les utilisateurs et le contrôleur de moi l'ont? – Tiago