Тестирование GET в контроллере рельсов - PullRequest
0 голосов
/ 25 мая 2009

У меня такое ощущение, что я просто делаю что-то неправильно синтаксически, но Google "GET" удивительно сложно, поэтому я надеялся, что кто-то здесь может знать ответ на это.

Я пытаюсь проверить контроллер Rails из теста RSpec. Я следую примеру, который нашел здесь - http://www.elevatedrails.com/articles/2007/09/10/testing-controllers-with-rspec/, но я застрял на фактическом выполнении метода, который я тестирую.

Я делаю запрос GET, где, как и в предыдущем посте, выполняется POST. Я передаю 2 параметра производителя и модель.

Мой URL в идеале будет выглядеть примерно так: http://mysite.com/Products/index/Manufacturer/ModelName

Я не могу понять синтаксис для вызова запроса get в остальном. Прямо сейчас у меня есть

get :index, :manufacturer=>@manufacturer, :modelName=>@modelName

и я вернусь

ArgumentError в «ProductController. Найдите правильный продукт, который должен получить продукт». неверное количество аргументов (0 для 2)

Есть мысли?

edit: Следует отметить, что @manufacturer и @modelName определены в ранее (: каждый)

1 Ответ

1 голос
/ 26 мая 2009

Поскольку я подозревал, что это я был программистом.

Я определял метод контроллера как

def index(manufacturer, modelName) 

Когда мне действительно нужно было использовать хэш params для доступа к атрибутам. Затем мне пришлось определить собственный маршрут, так как id - это единственный параметр, который по умолчанию должен передаваться в метод контроллера.

как только я это сделал, я изменил спецификацию на

get :index, {:manufacturer=>@manufacturer, :modelName=>@modelName}

и это сработало.

Спасибо за комментарии всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...