我有一個HtmlHelper用於輸出一些手風琴風格的功能。這位助手將在整個工地廣泛使用。Asp.Net Mvc HtmlHelper測試VeiwContext.Writer.WriteLine
用於創建此功能的代碼使用了大量TagBuilder
,當然,我們輸出使用HTML:
htmlHelper.ViewContext.Writer.WriteLine(someTag.ToString(TagRenderMode.StartTag));
我們有使用這個模式的幾個幫手,它的工作太棒了。
到目前爲止,這一切都很好 - 它完全符合我的要求。然而 - 測試這被證明是一場噩夢。我該如何測試htmlHelper.ViewContext.Writer.WriteLine
?
我們使用的xUnit和起訂量,如果它的事項
一個樣品,我能找到的是在這裏:http://blogs.teamb.com/craigstuntz/2010/09/10/38638/但似乎承擔標準擴展HtmlHelper使用'公共靜態MvcHtmlString ...',其中的方法返回類似'return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.Normal));'。你實際返回的html helper方法是什麼? – Nope 2012-02-08 11:08:30
我們使用的是MvcForm使用的相同模式。所以它返回一個Accordian:IDisposable類。 – iwayneo 2012-02-08 11:17:31
我明白了。你能否在你的測試中做出與我發佈的鏈接中的人類似的東西?在你的情況下,你的返回值是Accordion類的一個實例,然後你可以相應地進行檢查和斷言? – Nope 2012-02-08 11:33:31