Wie Schreibe ich eine Rails 3.1 engine-controller-test von rspec?

Ich geschrieben habe eine Rails 3.1 Motor mit dem namespace-Beiträge. Daher mein Controller findet sich in app/controllers/posts/, meine Modelle in app/models/posts, etc. Ich kann testen Sie die Modelle ganz gut. Die Skillung für ein Modell sieht aus wie...

module Posts
  describe Post do
    describe 'Associations' do
      it ...
      end

... und alles funktioniert.

Jedoch die Spezifikationen für die Controller funktionieren nicht. Die Schienen-Motor ist montiert auf /posts, aber der controller Beiträge::PostController. So, die tests sehen für den controller route Beiträge/posts.

  describe "GET index" do
    it "assigns all posts as @posts" do
      Posts::Post.stub(:all) { [mock_post] }
       get :index
       assigns(:posts).should eq([mock_post])
    end
  end

ergibt...

  1) Posts::PostsController GET index assigns all posts as @posts
     Failure/Error: get :index
     ActionController::RoutingError:
     No route matches {:controller=>"posts/posts"}
     # ./spec/controllers/posts/posts_controller_spec.rb:16

Ich habe versucht, alle Arten von tricks in der test-app die Routen-Datei... : - namespace, etc, ohne Erfolg.

Wie mache ich diese Arbeit? Es scheint, wie es nicht, da der Motor versetzt den controller auf /posts, noch die Namensräume legt den controller auf /posts/Beiträge mit dem Zweck der Prüfung.

Schreibe einen Kommentar