2011-03-21 35 views
9

我想爲我的Rails 3應用程序編寫一些自動測試。如何開始測試Rails應用程序?

我不知道該如何開始。

我聽說過Selenium/RSpec /黃瓜,我想還有更多的選擇。

這些測試框架的優點和缺點是什麼?他們哪個擁有最好的文檔?哪一個在Ruby世界中最受歡迎?而在行業呢?

我有如何編寫測試的一般知識。我只想學習用於測試Rails應用程序的適當測試框架。

請幫我決定開始哪個測試框架。

+3

一切都非常好的問題。國際海事組織(IMO)對Rails的諸多方面缺乏凝聚力/理解,特別是在測試方面。 – Zabba 2011-03-21 04:34:33

+0

關於[metabates.com](http://www.metabates.com/)的一些很好的文章。 – Zabba 2011-03-21 13:12:30

回答

2

有來自許多不同的方面測試軌道和其他的web應用的工具。但是,如果你是新手,測試我強烈建議你在開始使用其他工具之前先學習Rails自己的測試框架

學習,後來掌握,一個測試框架使得它在未來更容易理解與其它框架優點/缺點,使它們協同工作。

您可以用測試以下幾點入手:

  • 單元測試你的型號供您控制器
  • 學習一下燈具以及如何加載測試數據
  • 功能測試

我看到很多失敗的測試工作,但是我從來沒有看到他們失敗,因爲他們選擇了錯誤的工具/框架。他們失敗了,因爲他們不知道如何掌握他們使用的工具,並充分了解有關測試的基礎知識。

瞭解更多關於Rails測試的信息。
http://guides.rubyonrails.org/testing.html

手冊探索性測試
雖然我很喜歡自動化測試是,恕我直言,不是一個手工測試的替代品。主要原因是自動化只能按照所告知的內容進行,並且只能驗證它被通知視爲合格/不合格的內容。一個人可以利用它的智能來發現錯誤並提出在測試別的東西時出現的問題。
瞭解更多關於另一個這裏我的答案的混合自動和手動測試:
What test methods do you use for developing websites?

1

最簡單的入門方法是使用TestUnit。當您使用腳手架生成模型,視圖和控制器時,它會自動爲您生成包含測試環境設置文件和測試的測試文件夾,或者您可以使用軌道生成器將測試添加到現有模型。

然後閱讀TestUnit上的文檔,其中有相當數量的文檔。

對於下一步,我個人的偏好是使用RSpec超過黃瓜 - 我發現黃瓜很難維護,雖然它是美好的,有你的老闆可讀的測試,我發現大多數老闆並不是真的想要閱讀或爲測試做出貢獻,而且這會耗費時間開發,而且非常「微不足道」 - 大量小文本散落在各種文件中。

如果您想正確使用並開始使用RSpec for Rails,那麼我建議您使用Rspec-Rails,其中包含許多助手來聲明應用程序的正確行爲。

我可以繼續,但你要求'我從哪裏開始' - 有兩個好地方。

+0

感謝您的意見。你沒有提到有關硒的事情。我猜RSpec和Selenium是針對不同類型的測試。是對的嗎 ? – 2011-03-21 10:42:49

+0

Misha:如果您正在測試在瀏覽器中呈現的應用程序(Selenium是瀏覽器驅動程序),那麼RSpec可以與Selenium一起使用。 – carols10cents 2011-03-21 13:09:36

+0

你用什麼來裝扮成一個瀏覽器取決於你 - 它適用於RSpec。我使用Webrat是因爲我覺得它更容易設置。 – stef 2011-03-21 13:39:08

2

Selenium是一個自動化用戶界面測試的框架。 Selenium腳本啓動瀏覽器窗口,轉到網頁並操作頁面元素。

RSpec的黃瓜是所謂的 「行爲驅動開發(BDD)」 工具。 BDD是一個開發過程,您可以在其中描述單獨的功能,以及一些檢查此功能的腳本(可以是Selenium腳本)。 RSpec和Cucumber基本上連接了這兩個,所以當你運行一個測試腳本時,你會看到用簡單的語言寫成的功能列表及其測試狀態。

Selenium腳本可以寫在number of languages,而Cucumber腳本使用Ruby。文檔對於所有這些都是可以的,但是需要一些編程語言的知識。

開始鏈接:

1

還有一堆,幫助您測試您的Ruby/Rails代碼框架......偉大的事情是紅寶石的動態特性爲您提供了很大的靈活性。

我喜歡用RSpec的測試我的代碼的內部,和黃瓜來測試應用程序的行爲。所以一般來說,RSpec將測試模型和方法,並且Cucumber通過瀏覽器測試用戶交互。

我強烈建議在BDD using RSpec on Cucumber這種務實的程序員電子書。

+0

注:我個人不推薦硒。我會和黃瓜一起使用水豚來測試瀏覽器/用戶的交互。 – 2011-03-21 12:31:07

+0

Jesse:如果您正在測試javascript,則Capybara可以使用Selenium作爲其瀏覽器驅動程序;它們不是相互排斥的。 – carols10cents 2011-03-21 13:04:07

+0

@ carolclarinet好點 – 2011-03-21 13:28:46

2

我不會說有任何一個最好的一套測試工具,在那裏;而社區絕對沒有以任何方式決定任何標準。

我強烈推薦來自Pragmatic Programmers的The RSpec Book--本書的大約一半是用帶有Cucumber,RSpec和Selenium等瀏覽器模擬器的Rails進行測試。它全面概述了您將在Rails中找到的不同情況以及您可能想要在各種情況下使用的工具。