这不再是事实,您可以设置生成器以在生成Rails应用程序的新部分时创建RSpec规范文件,以及为现有部分创建规范文件。
主要功能位于应用程序的生成器配置中,在运行rspec-railsrspec:install任务时启用,但如果您想指定要包含/排除的特定规范文件,则可能需要此内容:
config/environments/development.rb//或任何您想要的环境
Rails.application.configure do
...
config.generators do |g|
g.test_framework :rspec
g.fixture_replacement :factory_bot
g.factory_bot dir: 'spec/factories'
g.controller_specs false
g.request_specs true
g.helper_specs false
g.feature_specs true
g.mailer_specs true
g.model_specs true
g.observer_specs false
g.routing_specs false
g.view_specs false
end
end
生成器设置
“test_framework”选项可以让Rails准确地知道要为哪个测试框架创建测试文件,并根据您的设置生成新文件。
使用“fixture_replacement”,我们可以防止Rails默认生成固定装置,而是为每个创建的模型创建工厂。
最后是“factory_bot”选项,您可以根据需要更改工厂文件夹的默认值,但在安装时将默认为此目录。 您可以在Factory Girl/Bot说明中找到更多选项。
现在,当我们生成新内容(例如模型)时:
> rails g model settings
invoke active_record
create db/migrate/20170915173537_create_settings.rb
create app/models/setting.rb
invoke rspec
create spec/models/setting_spec.rb
invoke factory_girl
create spec/factories/settings.rb
生成应用程序的预生成部分的规范文件
与生成Rails文件类似,您可以通过Rspec自己的任务生成规范文件:
> rails g rspec:model old_settings
create spec/models/old_settings_spec.rb
invoke factory_girl
create spec/factories/old_settings.rb
这个命令使用与Rails的generate命令相同的约定来创建spec文件,包括scaffold,因此您可以为整个命名空间创建spec文件。