为Rails或Sinatra编写的RESTful API的单元测试有哪些选项?

时间:2011-06-29 19:42:27

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

我为Sinatra编写了一个REST API - 我想建立一些好的单元测试,并希望社区对我应该花时间调查哪些库的输入。

2 个答案:

答案 0 :(得分:3)

答案 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中的所有逻辑都可以获得巨大的收益,而不会有任何更复杂的框架麻烦。

希望有所帮助。

布兰登