Какие есть варианты для модульного тестирования RESTful API, написанного для Rails или Sinatra? - PullRequest
2 голосов
/ 29 июня 2011

У меня есть REST API, написанный для Sinatra - я хотел бы создать несколько хороших модульных тестов и хотел бы получить от сообщества информацию о том, на какие библиотеки мне следует потратить свое время.

Ответы [ 2 ]

3 голосов
/ 29 июня 2011
2 голосов
/ 30 июня 2011

Я бы пошел со скучным старым RSpec или Test :: Unit.Чтобы получить 80% тестового покрытия с 20% усилий, просто проведите тестирование под своим пользовательским интерфейсом.100% тестовое покрытие не является целью, работающее программное обеспечение.Ваш тест проверяет "бизнес-правила" для приложения, остальное - это пользовательский интерфейс с меньшим риском.

Предположим, вы пишете приложение для оценки платежей по кредиту.

Ваш тест будет выглядеть примерно так:

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

В более сложной системе у вас, очевидно, будет гораздо большев вашей тестируемой системе, но поддерживая тонкий пользовательский интерфейс и всю логику в SUT, вы получите огромные выгоды без всех хлопот более сложных структур.

Надеюсь, что это поможет.

Brandon

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...