Я новичок в этом TDD, но прилагаю серьезные усилия, поэтому я надеюсь получить некоторую обратную связь здесь.
Я создал небольшой веб-сервис для минимизации JavaScript, и все было хорошо, свсе мои тесты пройдены.Затем я заметил ошибку: если бы я попытался минимизировать alert('<script>');
, он выкинул бы HttpRequestValidationException
.
Так что это достаточно легко исправить.Я просто добавлю [AllowHtml]
к своему контроллеру.Но что может быть хорошим способом для модульного тестирования, чтобы этого не произошло в будущем?
Моей первой мыслью было следующее:
[TestMethod]
public void Minify_DoesntChokeOnHtml()
{
try
{
using (var controller = ServiceLocator.Current.GetInstance<MinifyController>())
{
return controller.Minify("alert('<script></script>');");
}
}
catch (HttpRequestValidationException)
{
Assert.Fail("Request validation prevented HTML from existing inside the JavaScript.");
}
}
Однако это не работает, так какЯ просто получаю экземпляр контроллера и запускаю на нем методы, а не запускаю весь конвейер ASP.NET.
Что будет хорошим модульным тестом для этого?Может быть, отражатель на методе контроллера, чтобы увидеть, присутствует ли атрибут [AllowHtml]
?Это кажется очень структурным и вряд ли переживет рефакторинг;что-то функциональное может иметь больше смысла.Есть идеи?