Я обновляю рельсы 2 приложения к рельсам 3 & не знает, как «обновить» следующую строку из одного из моих тестовКак преобразовать Rails 2/RSpec в синтаксис Rails 3/RSpec 2?
Category.should_receive(:find).with(:all,:conditions => {:parent_id => @parent_id}, :order => 'disp_order DESC').and_return(@categories_collection)
Надеясь кто-то может предоставить некоторые указатели на это, как я не уверен на 100% где начать здесь.
я получаю следующее сообщение об ошибке, когда я запускаю это:
Failure/Error: Category.should_receive(:find).with(:all,
(<Category(id: integer, permalink: string, name: string, parent_id: integer) (class)>).find(:all, {:conditions=>{:parent_id=>1}, :order=>"display_order DESC"})
* * Update 1
Я вижу что-то действительно странное сейчас, я рефакторинга, как Джим объяснена (большое объяснение КСТАТИ!), но теперь получаю следующее:
Failure/Error: Category.should_receive(:with_parent).with(1).and_return(@sub_category)
(<Category(id: integer, permalink: string, name: string, parent_id: integer) (class)>).with_parent(1)
expected: 1 time
received: 0 times
Однако, если добавить следующее моего теста:
puts Category.with_parent(1).length.to_s
Выход «1» - правильное/ожидаемое значение. По какой-то причине RSpec не видит ошибку &. Вы знаете, почему это может произойти?
* * Update 2
Хорошо, что интересно, если я использую следующий мой тест пройден:
Category.with_parent(@parent_id).should == [@sub_category]
пока это не удается:
Category.should_receive(:with_parent).with(@parent_id).and_return(@sub_category)
Есть ли проблема с использованием should_receive & .ad_return в этом контексте в rspec2?
Вы получаете ошибку? –