2009-07-21 8 views
4

Je suis en train de mettre en place des tests de cartographie à l'aide d'itinéraire MVC Contrib comme décrit dans Test ASP.NET MVC routes using MVC Contribtest ASP.NET MVC routes en utilisant MVC Contrib

Les tests compiler et exécuter, mais ils ne parviennent pas toujours avec le message « L'URL n'a pas correspondre à n'importe quelle route. "

Je mis en place un autre test pour essayer d'obtenir une idée de ce que le problème est:

Public Sub TestIndexRoute() 
     Dim routes = New RouteCollection 
     myMvcApp.MvcApplication.RegisterRoutes(routes) 
     Assert.That(routes.Count > 0) 
     Assert.NotNull(routes("Default"), "Default route not found.") 
     Dim routeData = RouteTestingExtensions.Route("~/Author") 
     Assert.NotNull(routeData, "routeData is Nothing.") 
     Assert.That(routeData.Values("controller") = "Author") 
    End Sub 

Ce test échoue sur Assert.NotNull(routeData, "routeData is Nothing."), donc je sais qu'il doit y avoir un problème avec le code MvcContrib qui tente pour accéder à RouteCollection de mon application.

Depuis le blog:

Il suppose également que vous définissez vos itinéraires dans l'objet ASP.NET MVC RouteCollection.

Comment puis-je confirmer que je fais cela? J'utilise routes.MapRoute dans la méthode MvcApplication.RegisterRoutes dans le code Global.asax derrière. Y a-t-il autre chose à faire pour l'installer correctement?

Editer: Je devrais probablement mentionner que je suis nouveau pour les tests unitaires. J'ai retardé l'apprentissage pendant trop longtemps et cela semblait être un bon point de départ.

Répondre

4

Essayez:

MvcApplication.RegisterRoutes(RouteTable.Routes); 

au lieu de:

Dim routes = New RouteCollection 
myMvcApp.MvcApplication.RegisterRoutes(routes) 

Voir RouteTestingExtensions, line 43

+0

Merci! C'est la pièce qui me manquait! – CoderDennis