1
我已根據說明here和here創建了自定義助手。這裏是什麼樣子(ThemeHelper.cs)
一個片段:。在MVC3中測試自定義剃鬚刀助手
@inherits Helpers.HelperPage
@using System.Web.Mvc
@using System.Web.Mvc.Html
@...
@helper PathTo(string fileName) {
@Url.Content("~/Content/Themes/" + Theme.CurrentTheme.FolderName + "/" + fileName);
}
我放在這個在App_Code文件的指示,我可以在我的觀點,這就是我想要的使用這些傭工
現在我的問題是,如何測試這個東西?我不能,例如,反射性地得到ThemeHelper
類的一個實例,無論是在目前的組裝,也不由反思訪問App_Code
或__Code
組件(均未實際回報)。
理想情況下,我想以某種方式稱這些函數並驗證結果/ HTML。我有一個框架(C#版本的HtmlUnit 2.7),它允許我請求URL並驗證HTML。
有沒有辦法測試我的自定義幫手?我想編寫類似:
ThemeHelper h = new ThemeHelper(); // or: Assembly.CreateInstance(...) or something
string html = h.PathTo("Site.css");
Assert.IsTrue(html.contains("Themes");
問題是,我的視圖助手是其他開發人員在創建自定義視圖時(使用WordPress風格主題開發)使他們的生活更輕鬆的事情。我不能爲了一個普通的課而拋棄它,而不會失去語法的簡易性,或者我可以嗎? – ashes999
@ashes999,確實在2之間找到合適的平衡點。應該使用Html助手來生成動態HTML代碼的短片段。他們可以進行單元測試。我個人從未使用剃刀助手。我更喜歡使用編輯器/顯示模板,我在其中調用我在類中定義的Html助手。 –
@DarianDimitrov問題是,作爲一名API開發人員,我不想將調用混合到HtmlHelper和其他幫助器中;我想提供一個單獨的類,以便用戶可以一目瞭然地查看API。 – ashes999