Как предотвратить использование RSpec "Rspec.describe... " и "type: ..." в сгенерированных спецификациях?

После обновления до RSpec 3 мои сгенерированные файлы спецификаций содержат RSpec.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

... вызов "type" кажется особенно избыточным, потому что у меня есть строка config.infer_spec_type_from_file_location! в rails_helper,

Как я могу заставить RSpec генерировать файлы спецификаций, которые выглядят как мой второй пример? Я не хочу каждый раз редактировать его вручную.

1 ответ

Решение

Если вы посмотрите на шаблон в репозитории rspec-rails github, вы увидите, что нет никакой возможности сделать это через переменные конфигурации. Но вы должны иметь возможность настроить его, просто создав файл в вашем 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 определяет с помощью этого подхода. Йои может даже добавить дополнительные вещи. Дополнительная информация здесь. Надеюсь, это поможет вам:)

Другие вопросы по тегам