Я пытаюсь выполнить модульное тестирование своих маршрутов, используя метод расширения MvcContrib.TestHelper ShouldMapTo <TController>
(), но мои тесты не выполняются со следующим сообщением об ошибке:
failed: Method MvcContrib.TestHelper.RouteTestingExtensions.ShouldMapTo:
type argument 'ReviewController' violates the constraint of type parameter
'TController'.
Но ReviewController действительно соответствует ограничению. Он наследуется от класса SmartController, который наследуется от System.Web.Mvc.Controller. Таким образом, я не знаю, как решить эту ошибку.
Вот мой модульный тест:
[Test]
public void Should_map_review_controller_routes_correctly()
{
MvcApplication.RegisterRoutes(RouteTable.Routes);
"~/reviews"
.ShouldMapTo<ReviewController>(c => c.Index());
}
Вот объявление класса ReviewController:
public class ReviewController : SmartController<Review, ReviewForm>
{
...
}
И объявление класса SmartController:
public abstract class SmartController<TModel, TForm> : Controller
where TModel : new()
{
...
}
Просто ради ухмылок я попытался удалить SmartController из иерархии наследования, чтобы ReviewController наследовал непосредственно от Controller, но ошибка все равно выдается.
Кто-нибудь знает, что я делаю не так?