我正在將devise_invitable集成到我的應用程序中,並且我必須編寫一個自定義控制器 - InvitationsController來覆蓋gem中的幾個方法。現在,我想編寫測試來覆蓋我所做的,但我無法弄清楚如何爲新控制器生成規範。任何幫助將不勝感激。如何使用rspec生成控制器規格?
謝謝!
我正在將devise_invitable集成到我的應用程序中,並且我必須編寫一個自定義控制器 - InvitationsController來覆蓋gem中的幾個方法。現在,我想編寫測試來覆蓋我所做的,但我無法弄清楚如何爲新控制器生成規範。任何幫助將不勝感激。如何使用rspec生成控制器規格?
謝謝!
RSpec的方式是
rails g rspec:controller passwords
它給
create spec/controllers/passwords_controller_spec.rb
--update
你可以配置你的應用程序創建的模型或控制器時產生rspec的。 添加到配置/ application.rb中
# don't generate RSpec tests for views and helpers.
config.generators do |g|
g.test_framework :rspec, fixture: true
g.fixture_replacement :factory_girl, dir: 'spec/factories'
g.view_specs false
g.helper_specs false
end
$rails g model category
invoke mongoid
create app/models/category.rb
invoke rspec
create spec/models/category_spec.rb
invoke factory_girl
create spec/factories/categories.rb
$rails g controller categories
create app/controllers/categories_controller.rb
invoke haml
create app/views/categories
invoke rspec
create spec/controllers/categories_controller_spec.rb
invoke helper
create app/helpers/categories_helper.rb
invoke rspec
invoke assets
invoke coffee
create app/assets/javascripts/categories.js.coffee
invoke scss
create app/assets/stylesheets/categories.css.scss
如果您使用Rails 3 + rspec並且安裝了rspec(rails g rspec:install
),它應該爲您生成的每個控制器(和其他對象)生成控制器規格。
如果您需要手動創建一個。只需在您的spec/controllers
中創建一個新的new_controller_name_spec.rb
。
require 'rails_helper'
describe NewControllerName do
# Test!
end
您也可以嘗試重新生成控制器文件,說沒有當它問你是否要覆蓋現有的控制器,並希望它會再次再生該控制器的RSpec的。
對於預先定義的規格SPEC文件,你可以檢查我的答案在此的其他問題http://stackoverflow.com/a/30808557/895789 – 2015-06-12 17:06:37