Rails新的"-T"选项,它是否创建了一个没有测试的应用程序?

sno*_*ler 6 ruby-on-rails

我正在学习本教程.在清单1.1中,它指出:

请注意,我们将使用Rspec作为测试套件,因此请确保在创建rails应用程序时包含-T选项.

-T在这种情况下,该选项有什么作用?

mad*_*cow 12

如果输入:

rails -h
Run Code Online (Sandbox Code Playgroud)

你会看到它解释了-T这样的选项:

-T, [--skip-test-unit], [--no-skip-test-unit]          # Skip Test::Unit files
Run Code Online (Sandbox Code Playgroud)

换句话说,此命令告诉Rails跳过Test::Unit文件和文件夹的生成.(Test::Unit是默认的Rails测试框架.)

如果没有-T选项,默认情况下会发生两件事:

  1. rails app初始化为test包含以下内容的目录:

    test/controllers
    test/fixtures
    test/helpers
    test/integration
    test/mailers
    test/models
    test_helper.rb
    
    Run Code Online (Sandbox Code Playgroud)

    您将不需要这些目录或test_helper,因为您将使用RSpec,它具有自己的文件夹结构和帮助程序.

  2. Test::Unit 每当生成模型,控制器,脚手架等时,都会自动生成测试用例.

    这也是不必要的,因为一旦安装RSpec,您将使用RSpec的自动规格生成器.

希望有所帮助!