Hello forum
I have there to files
#----- virtual_host_controller.rb
class VirtualHostsController < ApplicationController
before_filter :capture_domain
# GET /domain/1/virtual_hosts/1
def show
@virtual_host = @domain.virtual_hosts.find(params[:id])
respond_to do |format|
format.html # show.rhtml
end
end
private
def capture_domain
if params[:domain_id].blank?
flash[:notice] = 'Need domain.'
redirect_to domains_url
else
@domain = Domain.find(params[:domain_id])
end
end
end
#----
and
#----- virtual_host_controller_spec.rb
describe VirtualHostsController, "handling GET /domains/1/virtual_hosts/1" do
before do
@domain = mock_model(Domain)
@virtual_hosts = mock("virtual_hosts")
@virtual_host = mock("virtual_host")
Domain.should_receive(:find).with("1").and_return(@domain)
@domain.should_receive(:virtual_hosts).and_return(@virtual_hosts)
@virtual_hosts.should_receive(:find).and_return(@virtual_host)
login_as :admin
end
def do_get
get :show, :id => "1", :domain_id => "1"
end
it "should render show template" do
do_get
response.should render_template('show')
end
it "should find the virtual_host requested" do
# @domain.should_receive(:virtual_hosts).and_return(@virtual_hosts)
@virtual_hosts.should_receive(:find).with('1').and_return(@virtual_host)
do_get
end
it "should assign the found virtual_host for the view" do
do_get
assigns[:virtual_host].should equal(@virtual_host)
end
#-----
I have a problem with these three it should-cases. How can I make them to work.
The error is:
should find the virtual_host requested
Mock 'virtual_hosts' expected :find with ("1") once, but received it 0 times
The routes are like this:
map.resources :domains do |domains|
domains.resources :virtual_hosts
end
What can I do?
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users