Вы не поставили метку servers
на макете User
, поэтому спецификация не может продолжаться с этой точки. Исправьте это так:
@user_mock.stub(:servers).and_return([mock])
. Или добавьте его при создании макета.
Кроме того, ваша спецификация никогда не вызывает действия контроллера. Вам нужно get :list
. Пример:
describe UsersController do
it 'should list' do
@user_mock = mock(User,:servers=>[mock])
User.should_receive(:find).and_return(@user_mock)
@user_mock.servers.should_receive(:count).and_return(1)
get :list, :id => 1
end
end
Последнее замечание: я предполагаю, что в @users = User.find(params[:id])
вы действительно имели в виду @user
, поскольку возвращается только одна строка.