2008-10-13 11 views
2

В моих взглядах я использую помощник, который принимает произвольный HTML как блок:Как проверить Rails блок хелперы с RSpec

<% some_block_helper do %> 
    Some arbitrary HTML and ERB variables here. 
    More HTML here. 
<% end %> 

Моего помощник делает кучу вещей к пройденному блоку HTML перед визуализацией его назад к просмотру (Markdown и другое форматирование). Я хотел бы знать, какие самые чистые способы тестирования результата вызова helper в rSpec, если таковые имеются. Я нашел несколько примеров, связанных с частными методами ERB, но это кажется немного хрупким и трудночитаемым.

ответ

1
  1. Для функционального испытания напишите нормальный view spec и проверьте результат.
  2. Чтобы выполнить тестирование вашего helper, передайте ему произвольную строку ввода html.

Если есть какие-либо другие трудности, которые мне не хватает, просьба прокомментировать?

+0

Поскольку тест в Ruby, а не в шаблоне, неясно, как реплицировать поведение размещения HTML вне тегов ERB между `do` и` end`. – Peeja 2011-04-19 16:13:21

7

Чтобы добавить только немного к тому, что сказал Джеймс, я думаю, что-то, как это должно работать нормально:

describe SomeHelper do 
    it 'should do something' do 
    helper.some_block_helper { the_block_code }.should XXXX 
    end 
end 
1

Вот еще один пример, который расширяет ответ Камерона

describe SomeHelper do 
    it 'should do something' do 
    content = lambda { "blah" }         
    result = helper.some_block_helper(&content) 

    result.should include("blah") 
    result.should XXX 
    end 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^