проблема с использованием mock_model для тестирования контроллера - PullRequest
1 голос
/ 26 августа 2011

Я пытаюсь протестировать модель, но у меня возникают проблемы при создании фиктивной модели.

Вот часть контроллера:

def show
    @license = License.find(params[:id])

Вот часть моего rspec:

it "can show a license" do
   mocks = (1..3).map { mock_model(License) }
   License.should_receive(:all).and_return(mocks)       
   post :show, {:id => 1}

Однако, когда я запускаю свой rspec, я получаю сообщение об ошибке:

Failure/Error: License.should_receive(:all).and_return(mocks)
(<License(id: integer, license_id: string, location: string, format: string, license_type: string, language: string, context: string, licensor: string, licensee: string, resource: string, created_at: datetime, updated_at: datetime) (class)>).all(any args)
           expected: 1 time
           received: 0 times

Кроме того, если я заставлю это работать, как я могу изменить идентификатор одного из объектов License. будет 'mocks [0] .id = 5' работать?

Любая помощь будет принята с благодарностью. Спасибо.

1 Ответ

0 голосов
/ 03 апреля 2012

Должно быть License.should_receive(:find).with(1).and_return(mock), в этом случае достаточно только одного макета: mock = mock_model(License)

...