Вы можете использовать Мокко , чтобы заглушить и смоделировать звонки.Если вы делаете что-то вроде (а я просто придумываю это, потому что я не знаю синтаксис GeoCoder):
GeoCoder.get_data(x, y)
И это то, что вы хотите заглушить и заставить вернуть что-то еще, моккопозволяет вам:
GeoCoder.stubs(:get_data).with(x, y).returns(my_own_variable)
И это будет делать любой вызов GeoCode.get_data при передаче в x и y, чтобы вернуть вашу пользовательскую переменную.Однако эта заглушка будет действовать для всех последующих вызовов во время теста, поэтому вы можете отменить ее, вызвав:
GeoCoder.unstub(:get_data)
И это полностью вернет этот метод к нормальному.
В терминах Rspec, в блок демонтажа вы можете отстегнуть.С точки зрения огурца, вы можете добавить тег как @stubs_geocoder перед сценариями, а в features/support/env.rb
вы можете добавить это:
Before('@stubs_geocoder') do
# add your stub calls
end
After('@stubs_geocoder') do
# unstub
end