Mam 2 kontrolerów, które stworzyłem za pomocą generatora prowadnic szyn. Chciałem, żeby być zagnieżdżone w folderze o nazwie „demo” i tak prowadziłJak przetestować kontrolery z trasami zagnieżdżonymi za pomocą Rspec?
rails g scaffold demo/flows
rails g scaffold demo/nodes
Potem zdecydowałem się gniazdo węzłów wewnętrznych przepływów i zmienił złożyć moje trasy tak:
namespace :demo do
resources :flows do
resources :nodes
end
end
Ale ta zmiana zaowocowało testami rspec dla węzłów zerwania z ActionController :: Routing errors.
15) Demo::NodesController DELETE destroy redirects to the demo_nodes list
Failure/Error: delete :destroy, :id => "1"
ActionController::RoutingError:
No route matches {:id=>"1", :controller=>"demo/nodes", :action=>"destroy"}
Problem polega na tym, że rspec patrzy na złą trasę. Powinien szukać "demo/flow/1/nodes". Potrzebny jest również modelowy model przepływu, ale nie jestem pewien, jak to zapewnić. Oto mój przykładowy kod z wygenerowanego pliku rspec:
def mock_node(stubs={})
@mock_node ||= mock_model(Demo::Node, stubs).as_null_object
end
describe "GET index" do
it "assigns all demo_nodes as @demo_nodes" do
Demo::Node.stub(:all) { [mock_node] }
get :index
assigns(:demo_nodes).should eq([mock_node])
end
end
Czy ktoś może mi pomóc zrozumieć, w jaki sposób muszę dostarczyć model przepływu?