2012-02-08 26 views
7

Tôi đang sử dụng Rails 3.1.3 cho dự án có Tài nguyên kế thừa 1.3.0.Đường ray 3.1.3 và thử nghiệm Tài nguyên kế thừa không thành công

Khi tôi có một bộ điều khiển như vậy:

class PostsController < InheritedResources::Base 
end 

Và tôi thử nghiệm với rspec sau

describe "PUT update" do 
    describe "with invalid params" do 
     it "re-renders the 'edit' template" do 
     post = Post.create! valid_attributes 
     # Trigger the behavior that occurs when invalid params are submitted 
     Post.any_instance.stub(:save).and_return(false) 
     put :update, {:id => post.to_param, :post => {}}, valid_session 
     response.should render_template("edit") 
     end 
    end 
    end 

tôi nhận được lỗi sau:

3) PostsController PUT update with invalid params re-renders the 'edit' template 
    Failure/Error: response.should render_template("edit") 
     expecting <"edit"> but rendering with <""> 
    # ./spec/controllers/posts_controller_spec.rb:115:in `block (4 levels) in <top (required)>' 

Tại sao điều này? Tôi có phải làm cái gì khác không?

Trả lời

13

Chỉ cần thêm này:

Post.any_instance.stub(:errors).and_return(['error']) 

ngay sau:

Post.any_instance.stub(:save).and_return(false) 
Các vấn đề liên quan