On Jul 11, 2011, at 8:38 PM, David Zhang wrote: > I'm wondering how you tell RSpec to ignore null objects entirely. > For instance, I have this restaurant_id call below: > > def create > @meal = Meal.new(params[:meal]) > @meal.restaurant_id = current_user.restaurant_id # automatically decide > the restaurant-meal relationship > if @meal.save > flash[:notice] = "The meal was saved successfully." > redirect_to :action => :index > else > render :action => :new > end > end > > ...and I'm not sure how to deal with it. My spec test looks like this right > now: > > describe "POST create" do > let(:meal) { mock_model(Meal).as_null_object } > > before(:each) do > Meal.stub(:new).and_return(meal) > # meal.stub(:restaurant_id) Not sure what to do here!!!!!!!! > end > > it "creates a new meal" do > Meal.should_receive(:new).with("name" => "Pizza").and_return(meal) > post :create, :meal => { "name" => "Pizza" } > end > > context "when the meal saves successfully" do > before(:each) do # just for balance; as_null_object causes a truthy > value to be returned anyway > meal.stub(:save).and_return(true) > end > > it "sets a flash message" do > post :create > flash[:notice].should eq("The meal was saved successfully.") > end > > it "redirects to the meals index" do > post :create > response.should redirect_to(:action => :index) > end > end > > context "when the meal fails to save" do > before(:each) do > meal.stub(:save).and_return(false) > end > > it "assigns @meal" do > post :create > assigns[:meal].should eq(meal) > end > > it "renders the new template" do > post :create > response.should render_template("new") > end > end > > end > > If anyone knows the best way to deal with this, please let me know. I really > want to adeptly use RSpec in the future.
What's the failure message you're getting? _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users