2012-06-07 35 views
1

我們目前正在從Asp.net切換到asp.net mvc框架,我希望能找到一些相關的答案到asp.net MVC與純ASP.net測試。MVC vs ASP.net - 測試用例證明一個更容易測試另一個

有一些內部人士談論MVC更「友善」的測試,好的,但是在什麼樣的意義上呢?我的意思是,你能舉一個例子給我一個單元測試/測試用例,或者用MVC進行單元測試比在Asp.net中做同樣的事情更容易(或者更容易)的場景嗎?

因爲我們目前有超過這一事實,巨大的戰鬥,在這個對話中的兩個參數是: 1,MVC是更多的測試友好,易於測試 2 ASP.net可以儘可能多的測試爲MVC(MVC是建立在asp.net之上的)

這個討論沒有進展,我希望找到你,所有人都知道stackoverflow的神,在這個問題上的幫助來決定這一點。就像我說的,我更喜歡一些可以輕鬆地放在ASP.net和MVC上的示例/案例,以證明MVC實際上更容易測試。還是更容易測試?我們試圖讓我們的開發生命週期的測試更加友好,這是mvc的驅動目標之一,但一些老開發人員堅持認爲asp.net是一條可行的路。

如果可能的話,您可以就此提供一些關於此事,個人意見,客觀意見和一切見解的見解。顯然,如果我可以在這兩個框架上實現一個測試示例,以證明在測試時比另一個更好。

謝謝!

+0

如果你問這個問題的動機是「我想參加關於______的討論」,那麼你不應該在這裏問。 –

+0

不是那樣的,它不是。我已經是討論的一部分了。但是我希望能夠在測試場景中找到一些真正的答案,因爲我個人不具備MVC知識來創建測試用例,這實際上證明它對測試更友好。 – Mike

+0

MVC是asp.net的一部分 - 這就是爲什麼它被稱爲ASP.NET MVC。您將從WebForms切換到MVC – Bond

回答

4

如果使用MVP模式構建WebForms項目,那麼它就像MVC一樣可測試。

與MVC框架不同的是,它幾乎強制您默認編寫可測試的代碼,而使用WebForms時,您必須非常嚴格並嚴格地使其可測試。然而,有MVP框架可以幫助解決這個問題,例如http://webformsmvp.com/

+0

視圖不打算是可測試的,它們應該是非常愚蠢的以至於它們不需要測試。在MVC中測試Controller類,在MVP中測試Presenter類。這是一樣的原則。唯一的區別是控制器和演示者在應用程序中有不同的職責。 –

+0

是的,我發現這很有用[文章](http://www.typemock.com/blog/2012/05/22/automated-testing-of-asp-net-mvc-applications/)。 – ahmed

0

我還沒有使用asp.net,所以我的評論只是關於asp.net mvc的單元測試。一般來說(如同Christian寫的),如果你嚴謹嚴謹,並且使用良好實踐(控制反轉,接口編程),代碼很容易進行單元測試。如果你沒有(例如通過直接從控制器寫入數據庫),那麼即使asp.net mvc也很難進行單元測試。儘管asp.net mvc試圖強制程序員分離關注點。

在asp.net mvc中,視圖不能被單元測試。因爲這個原因,視圖應該保持簡單,只顯示來自視圖模型的數據並且只包含簡單的邏輯(for循環和簡單的if語句)。再次,由程序員來確保視圖保持簡單(使用例如部分視圖,擴展方法)。

可以對控制器和模型類進行單元測試,因爲它們不耦合到(依賴於)難以測試的類(例如數據庫存儲庫)或不能被模擬的類。

asp.net mvc中的路由也可以進行單元測試。

也許會通過一個asp.net mvc教程。你應該看到許多類是鬆耦合的,並且易於進行單元測試。

相關問題