Besoin d'aide avec l'erreur en utilisant le ShouldMapTo de MvcContrib.TestHelper () méthode d'extension générique
-
24-09-2019 - |
Question
Je suis en train de tester mes unité itinéraires à l'aide de la méthode d'extension MvcContrib.TestHelper ShouldMapTo<TController>
(), mais mes tests échouent avec le message d'erreur suivant:
failed: Method MvcContrib.TestHelper.RouteTestingExtensions.ShouldMapTo:
type argument 'ReviewController' violates the constraint of type parameter
'TController'.
Mais ReviewController ne répond la contrainte. Il hérite d'une classe appelée SmartController, qui hérite de System.Web.Mvc.Controller. Je suis donc à une perte sur la façon de résoudre cette erreur.
Voici mon test unitaire:
[Test]
public void Should_map_review_controller_routes_correctly()
{
MvcApplication.RegisterRoutes(RouteTable.Routes);
"~/reviews"
.ShouldMapTo<ReviewController>(c => c.Index());
}
Voici la déclaration de la classe ReviewController:
public class ReviewController : SmartController<Review, ReviewForm>
{
...
}
et la déclaration de la classe SmartController:
public abstract class SmartController<TModel, TForm> : Controller
where TModel : new()
{
...
}
Juste pour des grimaces, j'ai essayé de supprimer SmartController de la hiérarchie d'héritage afin que ReviewController hérite directement de contrôleur, mais l'erreur est toujours levée.
Quelqu'un sait-il ce que je fais mal?
La solution
J'ai utilisé cette méthode avec MVC 2 et MvcContrib construit avec MVC 2 et tout a bien fonctionné. J'ai trouvé ce problème:
Utilisez-ancien ensemble MvcContrib (construit avec MVC1) vous avec MVC 2? Si oui, vous devez télécharger les binaires ou sources MvcContrib pour MVC 2.