【问题标题】:Can I switch the testing framework of a Rails app?我可以切换 Rails 应用程序的测试框架吗?
【发布时间】:2011-04-01 20:30:04
【问题描述】:

当我开始我的 Rails 应用程序时,我选择了 RSpec 作为我的测试框架,因为所有的炒作。现在,我正在尝试编写更多测试,但我发现我不喜欢这样编写测试。我想切换回默认的测试框架。

我怎么能做这个开关?我正在使用 Rails 3.0.5

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 testing


    【解决方案1】:

    不知道你是否知道,但如果你使用断言而不是 rspec-expectations (obj.should matcher),你已经可以在没有任何额外配置的情况下这样做,那么唯一的区别是:

    # w/ Test::Unit
    class FooControllerTest < ActionController::TestCase
      test "something or other" do
        ...
      end
    end
    
    # w/ RSpec
    describe FooController do
      it "does something or other" do
         ...
      end
    end
    

    您可以在 Rails 中使用 Test::Unit 编写的所有其他内容,都可以使用 RSpec 以完全相同的方式编写。

    然后您将获得 RSpec 的所有非语法相关优势,例如可读输出、具有自己的 -help 输出的强大命令行工具等。

    我知道这并不能回答您提出的问题,但我希望它对您的决策过程有所帮助。

    【讨论】:

      【解决方案2】:

      这不是非此即彼的情况。您可以在同一个 Rails 应用程序中进行 RSpec 和 Test::Unit 测试,因此只需开始编写 Test::Unit 测试。无需切换,只需使用 Test::Unit 进行新开发即可。

      根据您运行测试的方式、CI 设置以及修改应用程序的方式,这可能会或多或少地发生变化,但在实践中这些都是直截了当的。

      【讨论】:

        【解决方案3】:

        在 config/application.rb 中

        module AppName
          class Application < Rails::Application
        
            generate.test_framework :test_unit, :fixture => false # :rspec <- before
        
            ...
        

        新模型/控制器生成基本的 test/* 文件

        【讨论】:

          猜你喜欢
          • 2019-09-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-23
          • 1970-01-01
          • 2016-02-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多