2010-05-31 59 views
4

HI thereAsp.Net MVC如何測試呈現的視圖

我想知道是否有更好的方式來測試視圖在MVC中呈現。

我在想也許我應該渲染視圖到一個字符串,但也許有更簡單的方法?

基本上我想知道,對於一個給定操作的觀點沒有錯誤呈現什麼 餘米已經在測試視圖模型,但我希望看到呈現給正確的ViewData.Model視圖工作

+0

我見過一對夫婦對已經在同一主題的問題[我們能否單元測試查看MVC的(「V」)?(https://stackoverflow.com/questions/1005819/can -we-unit-test-view-v-of-mvc)和[Unit Testing the Views?](https://stackoverflow.com/questions/151794/unit-testing-the-views)你也可以看看[這個](史蒂夫桑德森的博客中的博客)(http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/)。 – uvita 2010-05-31 15:51:38

回答

3

使用MvcContrib TestHelpers庫執行斷言特定視圖正在從你的行動返回:

var sampleController = new SampleController(); 
sampleController.New().AssertViewRendered().ForView("New").WithViewData<SomeModel>(); 

要作出斷言,以確保您返回正確的數據來看,從01拉模型:

var result = (ViewResult)sampleController.New(); 
((SomeModel)result.ViewData.Model).SomeProperty.ShouldNotBeNull(); 

這就像你的單元測試應該去的一樣。

對於端到端自動化功能/ GUI測試,您可能需要考慮使用像Selenium這樣的工具。

0

您可以爲您的項目啓用視圖編輯。這樣,除非您解決問題,否則該項目無法編譯。編輯此行中的.csproj文件:

<MvcBuildViews>false</MvcBuildViews>使用真實而非虛假

我你也可以使用ELMAH(安裝查看的NuGet),你可以通過電子郵件(包括YSOD)收到詳細的錯誤。

Source

相關問題