我为Sinatra编写了一个REST API - 我想建立一些好的单元测试,并希望社区对我应该花时间调查哪些库的输入。
答案 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中的所有逻辑都可以获得巨大的收益,而不会有任何更复杂的框架麻烦。
希望有所帮助。
布兰登