Нужна помощь с ошибкой с использованием метода расширения MVCCONTIB.Testheelper ()

StackOverflow https://stackoverflow.com/questions/2389833

Вопрос

Я пытаюсь установить тестирование моих маршрутов, используя 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top