Я пытаюсь проверить, правильно ли мой сервис вызывает Anemone.crawl.У меня есть следующий код:
spider_service.rb
class SpiderService < BaseService
require 'anemone'
attr_accessor :url
def initialize(url)
self.url = url
end
def crawl_site
Anemone.crawl(url) do |anemone|
end
end
end
spider_service_spec.rb
require 'spec_helper'
require 'anemone'
describe SpiderService do
describe "initialize" do
let(:url) { mock("url") }
subject { SpiderService.new(url) }
it "should store the url in an instance variable" do
subject.url.should == url
end
end
describe "#crawl_site" do
let(:spider_service) { mock("spider service") }
let(:url) { mock("url") }
before do
SpiderService.stub(:new).and_return(spider_service)
spider_service.stub(:crawl_site)
Anemone.stub(:crawl).with(url)
end
subject { spider_service.crawl_site }
it "should call Anemone.crawl with the url" do
Anemone.should_receive(:crawl).with(url)
subject
end
end
end
И вотошибка, которую я получаю и не могу понять, так как я могу вызвать службу в консоли Rails и получить данные от Anemone, когда я предоставляю действительный URL:
Failures:
1) SpiderService#crawl_site should call Anemone.crawl with the url
Failure/Error: Anemone.should_receive(:crawl).with(url)
(Anemone).crawl(#<RSpec::Mocks::Mock:0x82bdd454 @name="url">)
expected: 1 time
received: 0 times
# ./spec/services/spider_service_spec.rb:28
Пожалуйста, сообщите мнеЯ забыл что-то глупое (я могу винить в этом отсутствие кофе, а не общую некомпетентность!)
Спасибо за потраченное время,
Гав