2013-01-03 62 views
5

在ASP.NET WebForms中,我使用Selenium在許多項目中記錄和運行我的Web和UI測試。如何對ASP.NET MVC視圖進行Web測試?

我知道我們可以很容易地在ASP.NET MVC中單元測試控制器和模型。

視圖怎麼樣?

你也測試視圖?如果不是如何確保控制器操作呈現的視圖包含預期的邏輯和行爲?

我猜在WebForms中使用的相同的Web測試工具,如WatiN和Selenium,也可以在這裏使用,不知道?

如果是這樣,那麼WebForms中的WebTesting和MVC中的WebTesting之間會有什麼區別?

+1

這不正確,您可能還需要測試視圖。還可以有邏輯(例如javascript,控制動作調用,導航等),並且您可能希望確保它們的行爲與您期望的相同。 –

回答

8

視圖怎麼樣?

Erm,Selenium and WatiN。

真的,你認爲ASP.NET MVC視圖與傳統的ASP.NET WebForms有什麼不同,就集成測試而言呢?我的意思是他們都在一天結束時吐出HTML。這就是Selenium所瞭解的瀏覽器和內容。誰吐這個HTML並不那麼重要。在集成測試中你所關心的是,當用戶lambda在gamma文本字段中輸入beta後點擊按鈕alpha時,在得到的HTML頁面上得到這個Welcome User Phi,不是嗎?你真的不關心ASP.NET MVC之類的東西,甚至不關心諸如ASP.NET MVC Views之類的東西。

順便說一下,您可以使用Selenium和WatiN與PHP。如果你是他們的粉絲,或者使用Java Servlets。對於您使用的服務器端技術無關緊要。集成測試中重要的是您之前定義的場景。

如果是這樣,那麼WebForms中的WebTesting和MVC中的WebTesting之間會有什麼區別?

無。

1

我認爲ASP.NET MVC和WebForms在瀏覽器驅動的集成測試方面存在差異,因爲這些框架的不同服務器端方面會導致不同的測試方法。

以一個框架,協助這個,如Seleno。它使用引擎蓋下的Selenium,但將所有瀏覽器交互抽象爲C#頁面對象,然後您可以在C#測試中非常流利地使用它們。

有很多擴展和約定可以幫助許多常見的瀏覽器自動化操作,例如單擊按鈕或從表中提取數據。

但是我爲什麼要把這個問題作爲這個問題的答案呢?對於.NET MVC來說,Seleno特別方便,因爲頁面對象可以是通用的,可以爲ViewModel輸入特定的View(或Partial View),這會在爲該View編寫相應的頁面對象時創建強類型關聯。

這是MVC的ViewModel方面,它打開了這種方法;我認爲用WebForms做這件事會更棘手。

相關問題