我可以在这里看到这些功能的定义:https://github.com/rails/rails/blob/a3b1105ada3da64acfa3843b164b14b734456a50/actionpack/lib/action_dispatch/testing/integration.rb#L37
但是如何明确选择控制器呢?例如,假设我必须先进行登录才能继续进行某些测试。我想在RSpec测试中发帖:
require 'rails_helper'
RSpec.describe API::V1::BooksController, :type => :controller do
def login!
post "/sessions", { email: "xyz@abc.com", password: "pw" }
...
end
describe "my test" do
login!
...
end
end
但是我得到了
ActionController::UrlGenerationError:
No route matches {:action=>"/sessions", :controller=>"api/v1/books", :email=>"xyz@abc.com", :password=>"pw"}
我尝试过像post 'sessions#create'
或post :controller => "sessions", :action => "create"
这样的变体...但是没有任何工作,我不喜欢只是猜测正确方法来调用它。
建议表示赞赏,谢谢。