Я пытаюсь справиться с новым синтаксисом allow (для stubbing) в rspec 3.0 и действительно оценил бы, кто-то смотрит на мой код и говорит мне, правильно это (или неправильно).rspec 3.0 stubbing синтаксис - не уверен, что правильно
download.rb
class Download
def download_file
# code to download a file
end
def valid_json
# code to verify downloaded file is file type json
end
end
download_spec.rb
require 'spec_helper'
require 'json_spec'
describe Download do
let(:download) {Download.new}
describe "#download_file" do
it 'downloads a file from remote file location ' do
allow(download).to receive(:exist).and_return(true)
download.download_file
expect(download).to have_received(:exist).and_return(true)
end
end
describe "#valid_json" do
it 'confirms downloaded file is JSON' do
# download.to_json.should have_json_path("id")
# download.to_json.should have_json_type(Integer).at_path("id")
expect(download.to_json).to have_json_path("id")
expect(download.to_json).to have_json_type(Integer).at_path("id")
end
end
end
Большое спасибо заранее!
Привет, dnunez24, смешно, что вы должны сказать это о представлении Санди Меца, поскольку я только что смотрел ее разговор об этой теме на YouTube этим утром! Я, вероятно, не был достаточно ясен с моим кодом, но тест на метод загрузки фактически должен был протестировать существование файла, созданного в результате реализации загрузки. Я вернусь и снова посмотрю на палубу Санди. Спасибо за вашу помощь! – user4219550
Хорошо, хорошо. Таким образом, то, что вам может потребоваться, должно быть, должно быть завершено, то есть какой-то код на самом деле извлекает и создает файл. Особенно, если это может занять много времени при выполнении ваших тестов. Мне было трудно дать хороший пример этого, не понимая других зависимостей, связанных с вашим кодом. Вы можете захотеть взглянуть на инъекцию зависимостей, чтобы вы могли намного проще отправлять заглушки в ваши вызовы. Я считаю, что Санди дает некоторые примеры этого. –
Да, это будет единичный тест – user4219550