У меня есть метод в модели, который взаимодействует с внешней службой кодирования видео (Zencoder).Он использует гем zencoder_rb.https://github.com/zencoder/zencoder-rb
class EncodingRequest
def check_encoding_status
response = Zencoder::Job.details(self.request_id)
if response.success?
# do something
else
# do something else
end
end
end
Метод Zencoder :: Job # details вызывает веб-сервис Zencoder, чтобы узнать, завершено ли кодирование видео.
ВопросКак я могу захватить метод Zencoder :: Job # details, чтобы при вызове check_encoding_status он возвращал объект, который я могу создать.План состоит в том, чтобы заставить этот объект реагировать на #success?в любом случае, имеет смысл для моего теста.
Итак, вот как я бы хотел, чтобы спецификация выглядела
it "should mark the encoding as failed if there was an error in Zencoder" do
dummy_response = Zencoder::Response.new(:body => {:state => "finished"}, :code => 200)
# code that will force Zencoder::Job#details to return this dummy_response
@encoding = EncodingRequest.new(:source_asset => @final_large, :target_asset => @final_small)
@encoding.check_encoding_status
@encoding.status.should eql "success"
end
В настоящее время я использую rspec 2.5.Я немного читал о насмешках и заглушках, но я не уверен, что их можно использовать в этом сценарии.
Ваша помощь очень ценится.