Namespace
Module
Class
Methods
- _routes
- _test_case
- config
- protect_against_forgery?
- render
- rendered
- rendered_views
- setup_with_controller
Included Modules
- Rails::Dom::Testing::Assertions
- ActionView::Context
- ActionDispatch::Routing::PolymorphicRoutes
- AbstractController::Helpers
- ActionView::Helpers
- ActionView::RecordIdentifier
- ActionView::RoutingUrlFor
- ActiveSupport::Testing::ConstantLookup
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