只有两个动作在访问ProductsController
:
# /config/routes.rb
RailsApp::Application.routes.draw do
resources :products, only: [:index, :show]
end
测试设置中选择相应:
# /spec/controllers/products_controller_spec.rb
require 'spec_helper'
describe ProductsController do
before do
@product = Product.gen
end
describe "GET index" do
it "renders the index template" do
get :index
expect(response.status).to eq(200)
expect(response).to render_template(:index)
end
end
describe "GET show" do
it "renders the show template" do
get :show, id: @product.id
expect(response.status).to eq(200)
expect(response).to render_template(:show)
end
end
end
你会如何测试其他CRUD操作都无法访问? 这可能会在未来改变这样的测试将确保任何配置的变化也会被注意到。
我发现be_routable
匹配它看起来很有希望覆盖测试用例。
我建议这个职位由戴维·牛顿描述何时以及为什么给测试控制器的动作 。