我正在将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