自升级到RSpec 3以来,我生成的规范文件包含RSpec.describe
而不仅仅是describe
,并明确包含类型,例如:type => :model
。例如,这里是为名为“Plan”的类生成的模型spec文件:
require 'rails_helper'
RSpec.describe Plan, :type => :model do
pending "add some examples to (or delete) #{__FILE__}"
end
我宁愿让它看起来像这样(注意第3行的变化):
require 'rails_helper'
describe Plan do
pending "add some examples to (or delete) #{__FILE__}"
end
...“类型”调用似乎特别多余,因为config.infer_spec_type_from_file_location!
中有rails_helper
行。
如何让RSpec生成看起来像我的第二个示例的spec文件?我不想每次都手动编辑它。
答案 0 :(得分:4)
如果查看rspec-rails github repo中的模板,您可以看到没有选项可以通过配置变量执行此操作。但是,您应该只需在lib/generators/rspec/model/templates/
中创建一个名为model_spec.rb
的文件来自定义它,以便为您的模型创建自定义生成器。它只是一个erb模板,您可以在上面的链接中看到:
require 'rails_helper'
<% module_namespacing do -%>
RSpec.describe <%= class_name %>, :type => :model do
pending "add some examples to (or delete) #{__FILE__}"
end
<% end -%>
您应该可以轻松地自定义Rspec使用此方法定义的任何生成器。 Yoe甚至可以添加额外的东西。其他信息是here。希望这有助于你:)