私はgarb gemを使用して、Googleアナリティクスのページビューのような基本的な統計情報を取得しています。すべて正常に動作していますが、私はAPIコールをテストする最良の方法を理解できません。 Googleアナリティクスクラスのペアバージョンがあります:Rspecでgoogle analytics(garb)APIをテストするには?
class Analytics
extend Garb::Model
metrics :pageviews
dimensions :page_path
Username = 'username'
Password = 'password'
WebPropertyId = 'XX-XXXXXXX-X'
# Start a session with google analytics.
#
Garb::Session.login(Username, Password)
# Find the correct web property.
#
Property = Garb::Management::Profile.all.detect {|p| p.web_property_id == WebPropertyId}
# Returns the nubmer of pageviews for a given page.
#
def self.pageviews(path)
Analytics.results(Property, :filters => {:page_path.eql => path}).first.pageviews.to_i
end
# ... a bunch of other methods to pull stats from google analytics ...
end
かなり簡単です。しかし、定数が確実に設定されていることを超えて、私は効果的なテストを書くことができませんでした。このようなことをテストする最良の方法は何ですか?ここにいくつかの問題があります:
- 実際に私のテストでAPIをヒットしたくないです。それは遅く、インターネット接続が必要です。
- 統計は明らかに常に変化するため、テスト時にAPIをヒットしても期待値を設定することは困難です。
モッククラスがほしいと思いますか?しかし、私は以前にそのパターンを使ったことはありません。どんな助けも素晴らしいでしょう、正しい道に私をつかめるためのいくつかのリンクさえあります。
2つの固定期間に対してテストを試みることができます。古いGAのデータは変更されません。 – Yahel