Jesper Laursen wrote: > 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 > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > Correct me if I am wrong, but in the "before do"
@virtual_hosts.should_receive(:find).and_return(@virtual_host) should be VirtualHosts.should_receive(:find).and_return(@virtual_host) Since you are calling find on the class? _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users