Я думаю о том, как я могу протестировать этот класс, его интерфейс предоставляет только два метода, add_property и remove_property, которые просто оборачивают Recurly API.
class SubscriptionManager
def initialize(account_code)
@account_code = account_code
end
def add_property
subscription.update_attributes subscription_add_ons: [{ add_on_code: 'property', quantity: property_count + 1 }]
end
def remove_property
subscription.update_attributes subscription_add_ons: [{ add_on_code: 'property', quantity: property_count - 1 }]
end
private
def property_count
subscription.add_ons.first[:quantity]
end
def subscription
@subscription ||= Recurly::Subscription.find(@account_code)
end
end
Вот краткий обзор теста, который я пытаюсь написать, но моя цель здесь не в том, чтобы поразить API, поскольку гем Recurly предоставляет хорошую оболочку с собственным набором тестов. Тем не менее, я начинаю думать, что могу сделать это, только нажав API. У кого-нибудь есть идеи?
describe SubscriptionManager do
subject { SubscriptionManager.new('1') }
before do
subscription = mock 'Subscription'
Recurly::Subscription.stub(:find).with('1').and_return subscription
end
describe 'add_property' do
it 'increases the quantity of the property add on' do
end
end
describe 'remove_property' do
it 'decreases the quanity of the property add on' do
end
end
end