【发布时间】:2011-06-30 08:20:15
【问题描述】:
我有一个为 Sinatra 编写的 REST API - 我想构建一些好的单元测试,并希望社区对我应该花时间研究哪些库提出意见。
【问题讨论】:
标签: ruby-on-rails unit-testing rest sinatra
我有一个为 Sinatra 编写的 REST API - 我想构建一些好的单元测试,并希望社区对我应该花时间研究哪些库提出意见。
【问题讨论】:
标签: ruby-on-rails unit-testing rest sinatra
【讨论】:
我会选择无聊的旧 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 中的所有逻辑将使您获得巨大收益,而无需使用更复杂的框架。
希望对您有所帮助。
布兰登
【讨论】: