Joã*_*iel 3 rspec ruby-on-rails rspec2 rspec-rails ruby-on-rails-3
我有一个使用 Rails 3 的 Rails 应用程序。
我添加rspec-rails到我的Gemfile:
group :development, :test do
gem 'rspec-rails'
end
Run Code Online (Sandbox Code Playgroud)
然后我跑bundle install。它显示了我的 gem 列表,所有 rspec gem 都在那里(核心、导轨等)。
然而,当我跑
rails g rspec:install
Run Code Online (Sandbox Code Playgroud)
这就是它返回的内容:
create .rspec
create spec
create spec/spec_helper.rb
Run Code Online (Sandbox Code Playgroud)
虽然我的应用程序中有模型和控制器,但它只是创建这些文件。为什么 Rspec 不创建规范文件?
这不再正确,您可以设置生成器在生成 Rails 应用程序的新部分时创建 RSpec 规范文件,以及为应用程序的现有部分创建规范文件。
主要功能在于运行rspec-rails rspec: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
Run Code Online (Sandbox Code Playgroud)
发电机设置
'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
Run Code Online (Sandbox Code Playgroud)
为应用程序的预生成部分生成规范文件
与生成rails文件类似,可以通过Rspec自带的任务生成spec文件:
> rails g rspec:model old_settings
create spec/models/old_settings_spec.rb
invoke factory_girl
create spec/factories/old_settings.rb
Run Code Online (Sandbox Code Playgroud)
此命令使用与 rails 的 generate 命令相同的约定来创建规范文件,包括scaffold,因此您可以为整个命名空间创建规范文件。
| 归档时间: |
|
| 查看次数: |
2301 次 |
| 最近记录: |