2013-02-18 94 views
-1

我有以下步驟定義:黃瓜+水豚步驟定義 - 發送POST請求

When /^I upload it$/ do 

end 

它涉及一種文件上傳。在水豚的訪問方法,從我可以告訴一個GET唯一的方法..並做POST請求的唯一途徑是通過實現:

visit "/files/new" 
within('#upload-form') do 
    attach_file('File', @files_path+'/file.txt') 
    click_button('Upload') 
end 

這似乎並不非常強的測試,因爲它依賴於文件/新模板中的HTML和表單標籤。

有沒有更好的方法來處理這個問題,還是可以這樣做?我腦子裏想的是這樣的:

後files_new_path {文件:=>「a_file_on_the_system.txt」}

但話又說回來黃瓜測試集成測試..所以這是「官方」或最佳方式在這個級別寫測試?

回答

1

水豚密碼模仿人類的行爲。你不能指望人類「POST」,但只能「訪問」,「click_button」等。

你提到的語法將更適合控制器測試,但不能與Capybara進行集成測試。

在我看來,集成測試的最佳風格是思考和行爲,而不是機器。