Module: RSpec::Rails::ViewExampleGroup::ExampleMethods
- Defined in:
- lib/rspec/rails/example/view_example_group.rb
Instance Method Summary (collapse)
-
- (Object) params
Provides access to the params hash that will be available within the view:.
-
- (Object) render(options = {}, local_assigns = {}, &block)
Delegates to ActionView::Base#render, so see documentation on that for more info.
-
- (Object) response
deprecated
Deprecated.
Use
rendered
instead. -
- (Object) stub_template(hash)
Simulates the presence of a template on the file system by adding a Rails' FixtureResolver to the front of the view_paths list.
-
- (Object) template
deprecated
Deprecated.
Use
view
instead. -
- (Object) view
The instance of
ActionView::Base
that is used to render the template.
Instance Method Details
- (Object) params
Provides access to the params hash that will be available within the view:
params[:foo] = 'bar'
79 80 81 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 79 def params controller.params end |
- (Object) render - (Object) render({:partial = > path_to_file}) - (Object) render({:partial = > path_to_file}, {... locals ...}) - (Object) render({:partial = > path_to_file}, {... locals ...})
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
44 45 46 47 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 44 def render(={}, local_assigns={}, &block) = if Hash === and .empty? super(, local_assigns, &block) end |
- (Object) response
Use rendered
instead.
90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 90 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 |
- (Object) stub_template(hash)
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.
71 72 73 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 71 def stub_template(hash) view.view_paths.unshift(ActionView::FixtureResolver.new(hash)) end |
- (Object) template
Use view
instead.
84 85 86 87 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 84 def template RSpec.deprecate("template", :replacement => "view") view end |
- (Object) view
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
59 60 61 |
# File 'lib/rspec/rails/example/view_example_group.rb', line 59 def view _view end |