it “re-renders the ‘new’ template” do
# Trigger the behavior that occurs when invalid params are
submitted
Sector.any_instance.stub(:save).and_return(false)
post :create, :sector => {}
response.should render_template(“new”)
end
I have the new template under app/views/sectors but the test says:
SectorsController POST create with invalid params re-renders the ‘new’
template
Failure/Error: response.should render_template(“new”)
expecting <“new”> but rendering with <"">
This can happen if the action is actually redirecting instead of
rendering, one potential way to test this is to change your stubbed
method to return true.
SectorsController POST create with invalid params re-renders the ‘new’ template
Failure/Error: response.should render_template(“new”)
expecting <“new”> but rendering with <“”>
Please post the controller action so we can see what’s missing.
SectorsController POST create with invalid params re-renders the ‘new’ template
Failure/Error: response.should render_template(“new”)
expecting <“new”> but rendering with <“”>
It sounds like the test is working and that your code is at fault by
the looks of it. Do you have a “render”/redirect_to method being
called in your ‘create’ controller action? Where is it going?
I have the new template under app/views/sectors but the test says:
SectorsController POST create with invalid params re-renders the ‘new’ template
Failure/Error: response.should render_template(“new”)
expecting <“new”> but rendering with <“”>
It sounds like the test is working and that your code is at fault by
the looks of it. Do you have a “render”/redirect_to method being
called in your ‘create’ controller action? Where is it going?
I’m using inherited_resources so in my controller I don’t have any
action defined.
The controller is simply:
class SectorsController < InheritedResources::Base
def destroy
destroy!(:notice => t(‘Sector’)+" deleted.“)
rescue
flash[:error] = t(‘Sector’)+” is not deleted."
end
end
I’m using inherited_resources so in my controller I don’t have any
end
If I launch the application and I try to create an invalid sector, it
renders the new template correctly
I have another application and this test:
it “re-renders the ‘new’ template” do
UnsafeBuilding.stub(:new) { mock_unsafe_building(:save => false) }
post :create, :unsafe_building => {}
response.should render_template(“new”)
end
This works and the controller uses inherited_resources too.
I don’t understand why the test in the first application doens’t work
while the one in the second application works.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.