[Rspec] Trying to get rspec to test a controller in a namespace


#1

I am trying to get my workflow down and am confused on several fronts.
The
first is how to get my rspec_scaffold tests to run. The problem is that
i
generated my scaffold, then moved my controller into a namespace named
:admin.

So I have the following familiar code. How can i change this to avoid:


my error on run

/home/tim/.gem/ruby/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:445:in
load_missing_constant': uninitialized constant SponsorsController (NameError) from /home/tim/.gem/ruby/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:inconst_missing’
from
/home/tim/.gem/ruby/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:89:in
const_missing' from /home/tim/web_apps/lovd_by_fitwit/spec/controllers/sponsors_controller_spec.rb:3 from /home/tim/.gem/ruby/1.8/gems/rspec-1.2.2/lib/spec/runner/example_group_runner.rb:15:inload’
from
/home/tim/.gem/ruby/1.8/gems/rspec-1.2.2/lib/spec/runner/example_group_runner.rb:15:in
load_files' from /home/tim/.gem/ruby/1.8/gems/rspec-1.2.2/lib/spec/runner/example_group_runner.rb:14:ineach’
from
/home/tim/.gem/ruby/1.8/gems/rspec-1.2.2/lib/spec/runner/example_group_runner.rb:14:in
load_files' from /home/tim/.gem/ruby/1.8/gems/rspec-1.2.2/lib/spec/runner/options.rb:97:inrun_examples’
from
/home/tim/.gem/ruby/1.8/gems/rspec-1.2.2/lib/spec/runner/command_line.rb:9:in
`run’
from /home/tim/web_apps/lovd_by_fitwit/script/spec:5


sponsors_controller_spec.rb

require File.expand_path(File.dirname(FILE) + ‘/…/spec_helper’)

describe SponsorsController do

def mock_sponsor(stubs={})
@mock_sponsor ||= mock_model(Sponsor, stubs)
end

describe “responding to GET index” do

it "should expose all sponsors as @sponsors" do
  Sponsor.should_receive(:find).with(:all).and_return([mock_sponsor])
  get :index
  assigns[:sponsors].should == [mock_sponsor]
end

. . . .

end


#2

any takers? am i asking a question that is too hard or too easy and
boring?

thanks,

tim


#3

Hey Tim,
I didn’t see the first post.
If you’ve namespaced the controller, you’ll need to make that change
in the spec.

My assumption is that
SponsorsController became Admin::SponsorsController
So you’ll need to make sure that this is reflected in your spec.

-Jim


#4

On Wed, Apr 8, 2009 at 5:18 PM, TimBooher removed_email_address@domain.invalid wrote:

any takers? am i asking a question that is too hard or too easy and
boring?

So your SponsorsController exists inside of a Admin module namespace?

If so update your spec:

describe Admin::SponsorsController

If that’s not the issue I’m not quite sure what you’re using namespace
to refer to,

/home/tim/.gem/ruby/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in
/home/tim/.gem/ruby/1.8/gems/rspec-1.2.2/lib/spec/runner/example_group_runner.rb:15:in
from
describe SponsorsController do
assigns[:sponsors].should == [mock_sponsor]
rspec-users mailing list
removed_email_address@domain.invalid
http://rubyforge.org/mailman/listinfo/rspec-users


Zach D.
http://www.continuousthinking.com
http://www.mutuallyhuman.com


#5

Beware of scaffolds - they stop you from thinking which is never good.

Anyway my guess at the answer is inline.

On 8 Apr 2009, at 22:18, TimBooher wrote:

first is how to get my rspec_scaffold tests to run. The problem is

/home/tim/.gem/ruby/1.8/gems/activesupport-2.2.2/lib/active_support/
/home/tim/.gem/ruby/1.8/gems/rspec-1.2.2/lib/spec/runner/
from
sponsors_controller_spec.rb

require File.expand_path(File.dirname(FILE) + ‘/…/spec_helper’)

module Admin

Sponsor.should_receive(:find).with(:all).and_return([mock_sponsor])
get :index
assigns[:sponsors].should == [mock_sponsor]
end

. . . .

end
end


rspec-users mailing list
removed_email_address@domain.invalid://rubyforge.org/mailman/listinfo/rspec-users


rspec-users mailing list
removed_email_address@domain.invalid
http://rubyforge.org/mailman/listinfo/rspec-users

Matt W.
http://blog.mattwynne.net
http://www.songkick.com