Нужна помощь с ошибкой с использованием метода расширения MVCCONTIB.Testheelper ()
-
24-09-2019 - |
Вопрос
Я пытаюсь установить тестирование моих маршрутов, используя MVCCONTRIB. Testheelper Sectmapto<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 от иерархии наследования, чтобы отзыв контроллера наследовать непосредственно от контроллера, но ошибка все еще брошена.
Кто-нибудь знает, что я делаю не так?
Решение
Я использовал этот метод с MVC 2 и MVCContrib, построенным с MVC 2, и все работало нормально. Я нашел эту проблему:
http://groups.google.com/group/mvccontrib-discuss/browse_thread/thrad/356203db654fa4bd?pli=1.
Вы используете старую сборку MVCCONTRIB (построенный с MVC1) с MVC 2? Если да, вы должны скачать бинары MVCContrib или источники для MVC 2.