2012-11-13 175 views
0

我是RSpec和BDD的新手。我也是一個Railscast的癮君子,我一直在關注測試,RSpec,BDD和水豚。具體來說,我一直在關注Episode 275,其中涵蓋了使用Guard在保存規範後自動運行測試,並涉及水豚和集成規範。需要幫助編寫此RSpec測試

這就是我在BDD和RSpec/Capybara那裏的背景。我今天從字面上開始。現在我的情況是這樣的:

我有一個模型任務。當我創建一個新任務時,我應該在頂部顯示一條閃光消息,說明它已成功創建,並被引導至新的任務頁面。然而,在我實現這個之前,我想先寫一個測試來演示這個功能(正如Bob叔叔曾經說過的,除非你至少寫了一個失敗的測試,否則不應該編寫任何代碼)。儘管我應該寫什麼類型的測試,但我有點失落。這是一個集成規範還是控制器規範?或兩者?這些測試會是什麼樣子?

回答

1

這裏是一個廣義的例子來幫助你開始:

describe "Creating a new Task" do 
    before do 
    # setup tasks for logging in a user with sufficient rights 
    # create any objects ont which the new Task depends 

    visit "/tasks/new" 
    fill_in "name", :with => "Sample Task" 
    click_button "Submit" 
    end 

    it "should show a success message" do 
    page.should have_content "Task was created successfully" 
    end 

    it "should redirect to the show task page" do 
    page.should have_content "Show Task" 
    task = Task.last 
    current_path.should == task_path(task) 
    end 
end 
+0

這是一個要求規範或控制器規範? –

+0

這是一個請求規範。控制器規範將(或應該)將控制器類作爲主題,即'描述TasksController'。 – zetetic