0
私はこのクラスをテストする方法について考えています。そのインターフェイスは、Recurly APIをラップするadd_propertyとremove_propertyの2つのメソッドしか公開していません。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
は、ここで私が記述しようとしていますテストの概要ですが、ここでの私の目標は、Recurly宝石は、テストの独自のセットを持つ素敵なラッパーを提供するので、APIを打つことではありません。しかし、私は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
これは私の意図したものではありません。モデルを一気にぶつけないようにしたいと思います。 APIは十分にテストされています。私はそれを打つ必要はありません。私は正確にそれをスタブし、レスポンスの内容を理解することができます。 – TheDelChop
@TheDelChop - 残念ながら、レスポンスをスタブしてコードをテストする方法は、APIラッパーをテストする際に行う必要があります – dennismonsewicz