Как мне проверить помощников по Rails с помощью rSpec - PullRequest
2 голосов
/ 13 октября 2008

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

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

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

Ответы [ 3 ]

7 голосов
/ 30 октября 2008

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

describe SomeHelper do
  it 'should do something' do
    helper.some_block_helper { the_block_code }.should XXXX
  end
end
1 голос
/ 30 ноября 2010

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

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
1 голос
/ 30 октября 2008
  1. Для функционального теста напишите нормальное представление спецификации и проверьте результат.
  2. Для модульного тестирования вашего помощника , передайте ему произвольную строку ввода html напрямую.

Если есть какие-то другие трудности, которые я пропускаю, пожалуйста, прокомментируйте?

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