2017-01-25 3 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 не входит в состав бритвы. Вы можете использовать @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

Смежные вопросы