Namespace

Module

Class

Methods

Included Modules

Constants

INTERNAL_IVARS = [ :@NAME, :@failures, :@assertions, :@__io__, :@_assertion_wrapped, :@_assertions, :@_result, :@_routes, :@controller, :@_controller, :@_request, :@_config, :@_default_form_builder, :@_layouts, :@_files, :@_rendered_views, :@method_name, :@output_buffer, :@_partials, :@passed, :@rendered, :@request, :@routes, :@tagged_logger, :@_templates, :@options, :@test_passed, :@view, :@view_context_class, :@view_flow, :@_subscribers, :@html_document, ]

Attributes

[RW] controller
[RW] output_buffer
[RW] request

Instance Public methods

_routes()

📝 Source code
# File actionview/lib/action_view/test_case.rb, line 298
      def _routes
        @controller._routes if @controller.respond_to?(:_routes)
      end
🔎 See on GitHub

_test_case()

📝 Source code
# File actionview/lib/action_view/test_case.rb, line 215
          def _test_case
            controller._test_case
          end
🔎 See on GitHub

config()

📝 Source code
# File actionview/lib/action_view/test_case.rb, line 233
      def config
        @controller.config if @controller.respond_to?(:config)
      end
🔎 See on GitHub

protect_against_forgery?()

📝 Source code
# File actionview/lib/action_view/test_case.rb, line 211
          def protect_against_forgery?
            false
          end
🔎 See on GitHub

render(options = {}, local_assigns = {}, &block)

📝 Source code
# File actionview/lib/action_view/test_case.rb, line 237
      def render(options = {}, local_assigns = {}, &block)
        view.assign(view_assigns)
        @rendered << output = view.render(options, local_assigns, &block)
        output
      end
🔎 See on GitHub

rendered()

Returns the content rendered by the last render call.

The returned object behaves like a string but also exposes a number of methods that allows you to parse the content string in formats registered using .register_parser.

By default includes the following parsers:

.html

Parse the rendered content String into HTML. By default, this means a Nokogiri::XML::Node.

test "renders HTML" do
  article = Article.create!(title: "Hello, world")

  render partial: "articles/article", locals: { article: article }

  assert_pattern { rendered.html.at("main h1") => { content: "Hello, world" } }
end

To parse the rendered content into a Capybara::Simple::Node, re-register an :html parser with a call to Capybara.string:

register_parser :html, -> rendered { Capybara.string(rendered) }

test "renders HTML" do
  article = Article.create!(title: "Hello, world")

  render partial: article

  rendered.html.assert_css "h1", text: "Hello, world"
end

.json

Parse the rendered content String into JSON. By default, this means a ActiveSupport::HashWithIndifferentAccess.

test "renders JSON" do
  article = Article.create!(title: "Hello, world")

  render formats: :json, partial: "articles/article", locals: { article: article }

  assert_pattern { rendered.json => { title: "Hello, world" } }
end
📝 Source code
# File actionview/lib/action_view/test_case.rb, line 294
      def rendered
        @_rendered ||= self.class.content_class.new(@rendered)
      end
🔎 See on GitHub

rendered_views()

📝 Source code
# File actionview/lib/action_view/test_case.rb, line 243
      def rendered_views
        @_rendered_views ||= RenderedViewsCollection.new
      end
🔎 See on GitHub

setup_with_controller()

📝 Source code
# File actionview/lib/action_view/test_case.rb, line 221
      def setup_with_controller
        controller_class = Class.new(ActionView::TestCase::TestController)
        @controller = controller_class.new
        @request = @controller.request
        @view_flow = ActionView::OutputFlow.new
        @output_buffer = ActionView::OutputBuffer.new
        @rendered = +""

        test_case_instance = self
        controller_class.define_method(:_test_case) { test_case_instance }
      end
🔎 See on GitHub