我正在使用garb gem https://github.com/vigetlabs/garb从 Google Analytics 中获取一些基本统计数据,例如页面浏览量。一切正常,但我无法找出测试 API 调用的最佳方法。这是我的 Analytics 类的配对版本:
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,也很难设定预期。
我想我想要模拟课?但我以前从未使用过这种模式。任何帮助都会很棒,即使只是一些让我走上正确道路的链接。
Fakeweb http://rubygems.org/gems/fakeweb是一个很好的起点。它可以将您的 SUT 与网络隔离,以便缓慢的连接不会影响您的测试。
如果不了解更多关于 Garb 的信息,就很难知道还能说什么。显然,您需要知道从 API 发送和接收的数据的格式,以便您可以进行适当的模拟/存根。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)