1

自从升级到 RSpec 3RSpec.describe后,我生成的规范文件不仅包含describe,而且还显式包含了类型,例如:type => :model. 例如,这是刚刚为名为“Plan”的类生成的模型规范文件:

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 生成看起来像我的第二个示例的规范文件?我不想每次都手动编辑它。

4

1 回答 1

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 使用这种方法定义的任何生成器。你甚至可以添加额外的东西。更多信息在这里。希望这可以帮助你:)

于 2014-11-22T11:34:49.570 回答