2017-01-25 34 views
0

私自身のhtmlヘルパーに取り組んでいます。そして今、私はそれを試してみたいと思います。私が選択した方法は、RazorEngineライブラリを使用して、ひげコードをコンパイルして結果を確認することです。RazorEngineを使用してカスタムhtmlヘルパーをテストする方法

さて、私は以下のようなサンプルを開始しました:

string template = "<div>@Html.Raw('sdf')</div>"; 
Engine.Razor.AddTemplate("mytemplate", template); 
var r = Engine.Razor.RunCompile("mytemplate"); 

しかし、私はこのケースでエラーを持っている - Additional information: Errors while compiling a Template.

私はこの質問RazorEngine issues with @Htmlを見つけました。しかし、それは古すぎるように見えます。

答えて

0

Html.RawはRazorの一部ではありません。あなたは

に代わり例@Rawを使用することができます。

var template = "<div>@Html.Raw(\"<strong>Bold!</strong>\")</div>"; 
template = template.Replace("@Html.Raw", "@Raw"); 
var r = Engine.Razor.RunCompile(template, "templateKey"); 
0

をあなたはここでテストするために、正確に何をしようとしている - あなたのHTMLヘルパーは何をしているのですか?

単体テストの実行は、HTMLヘルパにとっては非常に簡単です.HtmlHelperクラスは、メソッドの呼び出し時に書き込まれるストリームライタにアクセスできるViewContextクラスを取ります。あなたが期待するのは、期待された結果でこれをテストすることだけです。

必要以上に広い範囲をテストするため、RazorViewEngineインスタンスを作成する必要はありません。

これはあなたがする必要があります:https://www.danylkoweb.com/Blog/the-ultimate-guide-to-unit-testing-in-aspnet-mvc-E2

関連する問題