2011-04-07 1 views
0

rails3 및 rspec2 : 경로가 오류와 일치하지 않습니다 (앱에서 작동하는 동안).

get 'home/index' 
root :to => 'home#index' 

home_index GET /home/index(.:format)  {:action=>"index", :controller=>"home"} 
root    /(.:format)    {:action=>"index", :controller=>"home"} 

그래서 내 application.html.haml에서 root_path으로의 링크가 있습니다. root_path

{:controller => "home", :action => :index} 
로 변환됩니다. 그러나 모든 사양에서 나는 오류가 발생합니다.

No route matches {:controller=>"home"} 

개발 중에 응용 프로그램을 실행하면 모든 문제없이 이 렌더링되고 올바르게 클릭 할 수 있습니다.

아무도 내가 뭘 잘못했는지에 대한 단서가 있습니까?

레일 어플리케이션이 레일 2.3.11에서 레일 3으로 마이 그 레이션 된 되는 과정에 추가해야한다고 덧붙여 야합니다. 뭔가를 간과해야하지만, 나는 무엇을 볼 수 없습니다.

[편집 : 더 많은 결과]

나는 더 많은 것들을 시도해 왔습니다. Rubymine에서 완벽하게 실행되는 테스트 또는

를 사용하면 작동하지 않습니다. 차이점은 무엇입니까? rspec1에 대해 생성 된 lib/tasks/rspec.rake 파일을 삭제했으며 정확한 명령이 실행되었음을 알 수 있습니다.

bundle exec rspec 

그래서 여기에 손실이 있습니다.

rspec spec/controller/**/*_spec.rb 

rspec spec/controller/accounts_controller/*_spec.rb 

실행하면 테스트가 실패합니다. 파일 맨 위에 다음과 같이 표시됩니다.

describe AccountsController do 

형식을 명시 적으로 추가했습니다.

describe AccountsController, :type => :controller do 

그러나 그 효과가 없습니다.

아무도 어떤 조언이 있습니까?

답변

0

내가 그것을 발견! 나에게 시간이 좀 걸렸지 만 궁극적으로 다르게 일어나는 일을 볼 수있는 로그 파일과 차이가있었습니다.

명백하게 나는 우리가 baseclass를 테스트하려고하는 spec 파일에있다. 이 스펙 안에는 더미 인덱스 메소드를 사용하여 해당 기본 클래스에서 을 파생하는 새로운 컨트롤러를 정의합니다.

ActionController::Routing::Routes.draw do |map| 
    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

을 어떻게 든이 사양은 항상 먼저 실행 한 : 그 스펙 내부에 다음과 같은 코드를 찾을 수 있었다, 그래서

는 또한 우리는 경로를해야합니다. 이것은 내가 생각한 전체 라우팅 구성을 효과적으로 지 웁니다.

이 변경 사항이 rails3 또는 rspec2에 의해 발생했는지 확실하지 않은 경우 어쨌든 대부분의 테스트가 작동 중입니다.이 문제를 해결하려면 테스트를 지금 완료해야합니다.

0

는 좀 더 구체적으로해야 할 수도 있습니다 귀하의 경로

resources :home, :controller => :home 
+0

안녕하세요 @ fl00r, 팁 주셔서 감사합니다. 그것은 나를 위해 아무것도 바뀌지 않습니다. 실제로 나는'home/index''get을 얻을 수있다. (나는 그것을 위해 충분하다.) (나는 더 명확하게하기 위해 나의 질문을 편집했다.) 응용 프로그램이 작동한다고 말했듯이'rake spec '을 실행하는 동안 오류가 발생합니다. – nathanvda

0

내 생각에이 줄을 추가하려고 :

get 'home/index' => 'home#index' 
+0

설명서에서 : http://edgeguides.rubyonrails.org/routing.html#http-verb-constraints 나는 응용 프로그램 자체가 작동하고 있기 때문에 rspec과 관련된 느낌이 들었습니다. – nathanvda

+0

나는 그것이 효과가 있다는 것을 의심하지 않는다. 나는 Rspec이 속기에 약간의 문제가 있을지 궁금해하고있다. .. 그러나 나는 단지 정말로 추측하고있다. – polarblau