我有2個控制器,我使用軌道的腳手架發電機創建。我希望他們可以嵌套一個名爲「演示」文件夾中,因此跑如何使用Rspec測試具有嵌套路由的控制器?
rails g scaffold demo/flows
rails g scaffold demo/nodes
然後,我決定內部流動窩節點,並改變了我的路線文件,像這樣:
namespace :demo do
resources :flows do
resources :nodes
end
end
但這種改變導致rspec測試的節點違反了ActionController :: Routing錯誤。
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"}
問題是rspec正在看錯誤的路線。它應該尋找「演示/流量/ 1 /節點」。它也需要模擬流程模型,但我不知道如何提供。這裏是我生成的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
有人可以幫我理解我需要如何提供流模型嗎?