Module: RSpec::Rails::ViewExampleGroup::ExampleMethods Private
- Defined in:
- lib/rspec/rails/example/view_example_group.rb
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
DSL exposed to view specs.
Instance Method Summary collapse
-
#params ⇒ Object
private
Provides access to the params hash that will be available within the view.
-
#render(options = {}, local_assigns = {}, &block) ⇒ Object
private
Delegates to ActionView::Base#render, so see documentation on that for more info.
-
#response ⇒ Object
deprecated
private
Deprecated.
Use
rendered
instead. -
#stub_template(hash) ⇒ Object
private
Simulates the presence of a template on the file system by adding a Rails' FixtureResolver to the front of the view_paths list.
-
#template ⇒ Object
deprecated
private
Deprecated.
Use
view
instead. -
#view ⇒ Object
private
The instance of
ActionView::Base
that is used to render the template.
Instance Method Details
#params ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Provides access to the params hash that will be available within the view.
params[:foo] = 'bar'
81 82 83 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 81 def params controller.params end |
#render ⇒ Object #render({: partial => path_to_file}) ⇒ Object #render({: partial => path_to_file}, {... locals ...}) ⇒ Object #render({: partial => path_to_file}, {... locals ...}) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Delegates to ActionView::Base#render, so see documentation on that for more info.
The only addition is that you can call render with no arguments, and RSpec will pass the top level description to render:
describe "widgets/new.html.erb" do
it "shows all the widgets" do
render # => view.render(:file => "widgets/new.html.erb")
# ...
end
end
48 49 50 51 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 48 def render( = {}, local_assigns = {}, &block) = if Hash === && .empty? super(, local_assigns, &block) end |
#response ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Use rendered
instead.
92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 92 def response # `assert_template` expects `response` to implement a #body method # like an `ActionDispatch::Response` does to force the view to # render. For backwards compatibility, we use #response as an alias # for #rendered, but it needs to implement #body to avoid # `assert_template` raising a `NoMethodError`. unless rendered.respond_to?(:body) def rendered.body self end end rendered end |
#stub_template(hash) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Simulates the presence of a template on the file system by adding a Rails' FixtureResolver to the front of the view_paths list. Designed to help isolate view examples from partials rendered by the view template that is the subject of the example.
stub_template("widgets/_widget.html.erb" => "This content.")
73 74 75 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 73 def stub_template(hash) view.view_paths.unshift(ActionView::FixtureResolver.new(hash)) end |
#template ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Use view
instead.
86 87 88 89 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 86 def template RSpec.deprecate("template", :replacement => "view") view end |
#view ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The instance of ActionView::Base
that is used to render the template.
Use this to stub methods before calling render
.
describe "widgets/new.html.erb" do
it "shows all the widgets" do
view.stub(:foo) { "foo" }
render
# ...
end
end
63 64 65 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 63 def view _view end |