gpt4 book ai didi

ruby-on-rails - RSpec 没有为我的模型和 Controller 生成规范文件

转载 作者:行者123 更新时间:2023-12-02 07:41:42 26 4
gpt4 key购买 nike

我有一个使用 Rails 3 的 Rails 应用程序。

我加了 rspec-rails到我的 Gemfile :

group :development, :test do
gem 'rspec-rails'
end

然后我运行 bundle install .它显示了我的 gem 列表,所有 rspec gem 都在那里(核心、 rails 等)。

然而,当我跑
rails g rspec:install

这就是它返回的内容:
create  .rspec
create spec
create spec/spec_helper.rb

虽然我的应用程序中有模型和 Controller ,但它只是创建这些文件。为什么 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

发电机设置

'test_framework' 选项允许 rails 确切知道要为其创建测试文件的测试框架,并根据您的设置生成新文件。

使用“fixture_replacement”,我们可以在默认情况下阻止 rails 生成夹具,而是使用创建的每个模型创建工厂。

最后是“factory_bot”选项,如果需要,您可以在其中更改工厂文件夹的默认值,但在安装时将默认为该目录。您可以在 Factory Girl/Bot Instructions 中找到更多选项.

现在,当我们生成一些新的东西时,比如一个模型:
> 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自带的任务生成spec文件:
> rails g rspec:model old_settings
create spec/models/old_settings_spec.rb
invoke factory_girl
create spec/factories/old_settings.rb

此命令使用与 rails 的 generate 命令相同的约定来创建规范文件,包括 脚手架 ,因此您可以为整个命名空间创建规范文件。

关于ruby-on-rails - RSpec 没有为我的模型和 Controller 生成规范文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10454369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com