sthorpe
September 29, 2008, 9:53pm
1
I’m trying to write a spec asserting that no layout should be used in
a controller. My spec currently looks like this:
it "should render with no layout" do
controller.expect_render.with(hash_including(:layout => nil))
do_action
end
And this code, which should pass the spec, isn’t:
class AController < ApplicationController
layout nil
end
What am I doing wrong?
Best,
Scott T.
sthorpe
September 29, 2008, 9:55pm
2
On Mon, Sep 29, 2008 at 2:52 PM, Scott T.
[email protected] wrote:
I’m trying to write a spec asserting that no layout should be used in a
controller. My spec currently looks like this:
it “should render with no layout” do
controller.expect_render.with(hash_including(:layout => nil))
pre 1.1.5 this should be:
controller.expect_render(hash_including(:layout => nil))
(no with)
1.1.5 deprecates expect_render, having fixed the problem w/
should_receive:
controller.should_receive(:render).with(hash_including(:layout =>
nil))
Cheers,
David
sthorpe
September 29, 2008, 10:37pm
3
On Mon, Sep 29, 2008 at 3:30 PM, Scott T.
[email protected] wrote:
controller.expect_render.with(hash_including(:layout => nil))
That doesn’t seem to be working for me. Will that work with only an
explicit call to render :layout => nil the action? Do I need to integrate
views?
Didn’t realize that layout nil was a declaration at the top.
I haven’t tried this, but you probably do need to integrate views
because it’s never getting past the initial render call. That’s just a
guess.
sthorpe
September 29, 2008, 10:51pm
4
On Sep 29, 2008, at 4:36 PM, David C. wrote:
controller. My spec currently looks like this:
should_receive:
I haven’t tried this, but you probably do need to integrate views
because it’s never getting past the initial render call. That’s just a
guess.
That didn’t work either. I had to go diving into rails ugliness, per
usual:
describe "default layout" do
before(:each) do
@layout = controller.class.inheritable_attributes["layout"]
end
it "should have a nil layout" do
@layout.should be_nil
end
end
Scott
sthorpe
September 29, 2008, 11:04pm
5
On Mon, Sep 29, 2008 at 3:51 PM, Scott T.
[email protected] wrote:
Didn’t realize that layout nil was a declaration at the top.
I haven’t tried this, but you probably do need to integrate views
because it’s never getting past the initial render call. That’s just a
guess.
That didn’t work either. I had to go diving into rails ugliness, per usual:
That’s rails beauty. It’s just testing rails in isolation ugliness
sthorpe
September 29, 2008, 10:31pm
6
On Sep 29, 2008, at 3:54 PM, David C. wrote:
pre 1.1.5 this should be:
controller.expect_render(hash_including(:layout => nil))
(no with)
1.1.5 deprecates expect_render, having fixed the problem w/
should_receive:
controller.should_receive(:render).with(hash_including(:layout =>
nil))
That doesn’t seem to be working for me. Will that work with only an
explicit call to render :layout => nil the action? Do I need to
integrate views?
Scott
sthorpe
September 30, 2008, 3:09am
7
On Sep 29, 2008, at 5:02 PM, David C. wrote:
On Mon, Sep 29, 2008 at 2:52 PM, Scott T.
an
That didn’t work either. I had to go diving into rails ugliness,
per usual:
That’s rails beauty. It’s just testing rails in isolation ugliness
Yeah, but it’s clear that this wasn’t test first. If it was, you’d
have the following:
controller.layout.should be_nil
class AController
set_layout nil
end
Scott