我使用mixpanel-ruby库发送分析事件。跟踪器在初始化程序中定义:
require 'mixpanel-ruby'
$mixpanel = Mixpanel::Tracker.new(Figaro.env.mixpanel_token)
if Rails.env.development?
# Silence local SSL errors
Mixpanel.config_http do |http|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end
end
在我的控制器中,我发射了这样的事件:
def resume
@study.resume!
redirect_to studies_url, notice: 'Study resumed'
$mixpanel.track(current_user.id, 'Resume study')
end
这很有效但是当我使用rspec spec
运行测试套件时,事件会被触发,这不是理想的,因为它会影响我的月度事件限额,更不用说使数据偏斜了。
如何防止这些在测试环境中触发?
答案 0 :(得分:2)
使用代理(puffingbilly等)模拟mixpanel服务或配置自定义消费者
$mixpanel = if Rails.env.test?
Mixpanel::Tracker.new(Figaro.env.mixpanel_token) do |type, message|
# You can just discard the track in here if you'd like, or you can
# put it somewhere if you want to test your tracking
# track_log << [type, message]
end
else
Mixpanel::Tracker.new(Figaro.env.mixpanel_token) # Use the default if we're not testing
end