it ‘should do something’ do
helper.some_block_helper { the_block_code }.should XXXX
end
but not sure how to use it
I have a module which is extended on top of ActiveView::Base
module MyViewExt
def area(clazz, &block)
content = with_output_buffer(&block)
content_tag :div, content, :class => clazz
end
end
How would I go about testing this in isolation, especially that the
effect of using #with_output_buffer(&block)
is as expected (especially when I have nested calls of view helpers
using this approach!).
module MyViewHelper
def tab_for(clazz, &block)
content = with_output_buffer(&block)
content_tag :li, content, :class => clazz
end
end
module MyOtherViewHelper
…
end
describe “do it” do
it “works” do
ActionViewTester.tests MyViewHelper, MyOtherViewHelper
ActionViewTester.new do |helper|
helper.tab_for(‘kristian’) { ‘hello’ }.should match /kristian/
helper.hello(‘david’) { ‘hello’ }.should match /david/
end
end
end
describe “My ViewHelpers” do
it “should render content as expected” do
setup_action_view do
tests MyViewHelper, MyOtherViewHelper
end
with_action_view do |view|
view.tab_for('kristian') { 'hello' }.should match /kristian/
view.hello('david') { 'hello' }.should match /david/
with_action_view do |view|
view.with_template(%{
<%= tab_for('kristian') { 'hello' } %>
}).should match /hello/
end