こことここの指示に従ってカスタム ヘルパーを作成しました。これがどのように見えるかのスニペットです(ThemeHelper.cs)
:
@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 を検証したいと考えています。URL を要求して HTML を検証できるフレームワーク (HtmlUnit 2.7 の C# バージョン) を用意しています。
カスタム ヘルパーをテストする方法はありますか? 次のようなものを書きたいと思います:
ThemeHelper h = new ThemeHelper(); // or: Assembly.CreateInstance(...) or something
string html = h.PathTo("Site.css");
Assert.IsTrue(html.contains("Themes");