Лучший способ проверить RJS в спецификациях RSpec Controller? - PullRequest
6 голосов
/ 07 января 2009

Каков наилучший способ гарантировать, что правильный RJS генерируется в действии контроллера?

Например, я хочу убедиться, что div выделен следующим образом:

def new
  render :update do |page|
    page.visual_effect :highlight, :some_div
  end
end

Рант: Это быстро становится одной из причин, по которым я устаю от RSpec после его использования в течение года. Это должен быть простой вопрос, но на этот вопрос, похоже, никто не знает ответа.

Мне неоднократно говорили, что RSpec определяет поведение, и что я пытаюсь сделать здесь, это просто "тестовый код". Насколько я могу судить, выделение: some_div - это поведение.

Ответы [ 2 ]

4 голосов
/ 17 февраля 2009

rspec дает вам помощника have_rjs, который упаковывает assert_select_rjs. Вот некоторые особенности:

http://jonathan.tron.name/2007/11/24/rspec-and-inline-rjs

К сожалению, assert_select_rjs охватывает только:

:replace, :replace_html, :show, :hide, :toggle, :remove and :insert_html 

Так что это не обработает визуальный эффект от вашего вопроса. Однако плагин ARTS поддерживает визуальные эффекты.

http://github.com/timocratic/arts/tree/master

Вы должны быть в состоянии объединить это с rspecs новым 'spec / interop / test'.

http://blog.davidchelimsky.net/2009/2/2/rspec-works-with-test-unit

4 голосов
/ 20 января 2009

Разве невозможно настроить тест контроллера для вывода ответа и поискать некоторое форматирование javascript?

  xhr :get, :new
  response.should be_success
  response.should have_text("... test for JS response ...")

Я бы также, вероятно, использовал Selenium для более полного тестирования этого на клиенте, а тест на Controller - это скорее проверка на «здравомыслие».

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