2014-10-31 522 views
0

我正在做測試程序的想法介紹。我不知道如何測試他們想要的東西。Rails控制器測試

以下是我的測試。

require "rails_helper" 

describe PeopleController do 
    describe "#create" do 
    context "when person is valid" do 
     it "redirects to #show" do 

     post :create, FactoryGirl.build_stubbed(:person) 

     expect(response).to redirect_to(show_people_path) 
     end 
    end 

    context "when person is invalid" do 
     it "redirects to #new" do 
     pending "create this test" 
     end 
    end 
    end 
end 

我當然使用工廠的女孩。我嘗試了幾種方法。我真的不知道鋤頭來測試這個控制器。

任何見解都會很棒。

回答

0

我會使用FactoryGirl創建一個'無效'的人,並將其作爲參數發送到post :create

要創建無效人員記錄,爲什麼不在FactoryGirl中使用nested factories?根據在模型驗證,你可以簡單地這樣做:

規格/工廠/ person.rb

FactoryGirl.define do 
    factory :person do 
    ... 
    factory :invalid_person do 
     ... 
     email nil 
     ... 
    end 
    end 
end 

在您的測試

context "when person is invalid" do 
    it "redirects to #new" do 
    post :create, FactoryGirl.build_stubbed(:invalid_person) 
    expect(response).to redirect_to action: :new 
    end 
end 
+0

感謝。這現在更有意義。然而,我的終端拋出一個未初始化的常量FactoryGirl錯誤... hrm .. – 2014-10-31 02:40:58