Нужна помощь с ошибкой при использовании универсального метода расширения MvcContrib.TestHelper’sMapTo () - PullRequest
9 голосов
/ 05 марта 2010

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

Кто-нибудь знает, что я делаю не так?

1 Ответ

4 голосов
/ 06 марта 2010

Я использовал этот метод с MVC 2 и MvcContrib, построенными с MVC 2, и все работало нормально.Я обнаружил эту проблему:

http://groups.google.com/group/mvccontrib-discuss/browse_thread/thread/356203db654fa4bd?pli=1

Используете ли вы старую сборку MvcContrib (построенную с MVC1) с MVC 2?Если да, вам следует скачать двоичные файлы MvcContrib или исходные коды для MVC 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...