【问题标题】:What are some options for unit testing a RESTful API written for Rails or Sinatra?有哪些选项可以对为 Rails 或 Sinatra 编写的 RESTful API 进行单元测试?
【发布时间】:2011-06-30 08:20:15
【问题描述】:

我有一个为 Sinatra 编写的 REST API - 我想构建一些好的单元测试,并希望社区对我应该花时间研究哪些库提出意见。

【问题讨论】:

    标签: ruby-on-rails unit-testing rest sinatra


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      我会选择无聊的旧 RSpec 或 Test::Unit。要以 20% 的工作量获得 80% 的测试覆盖率,只需在您的 UI 下进行测试。 100% 的测试覆盖率不是目标,工作软件才是。您的测试验证了应用的“业务规则”,其余的是风险较低的 UI 内容。

      假设您正在编写一个估算贷款支付的应用程序。

      您的测试将如下所示:

      describe LoanCalculator do
        it "Estimates monthly payments given a loan amount, interest rate, and term" do
          LoanCalculator.new.estimate_payment(10000, 5, 48).should == 230.00
        end
      end
      

      一旦您知道您的 LoanCalculator 有效,您只需编写您的 Sinatra 应用程序以委托给它。

      get '/loan_calculator' do
        @loan_amount = params[:amount]
        @rate = params[:rate]
        @term = params[:term]
      
        @result = LoanCalculator.new.estimate_payment(@loan_amount, @rate, @term)
      
        erb :loan_calculator_results
      end
      

      在更复杂的系统上,您的被测系统显然会包含更多内容,但保持 UI 精简和 SUT 中的所有逻辑将使您获得巨大收益,而无需使用更复杂的框架。

      希望对您有所帮助。

      布兰登

      【讨论】:

        猜你喜欢
        • 2018-10-21
        • 2010-10-30
        • 1970-01-01
        • 1970-01-01
        • 2011-02-16
        • 2018-09-25
        • 1970-01-01
        • 1970-01-01
        • 2013-08-02
        相关资源
        最近更新 更多