Ho un controller con un attributo di instradamento. Questo controller non riesce in un test di unità, perché il percorso non è stato trovato:Test unitari con instradamento basato su attributi
A route named 'Values' could not be found in the route collection
Questo è il metodo di controllo:
[Route("api/values", Name="ApiValues")]
[HttpGet]
public HttpResponseMessage Get()
{
urlHelper.Link("ApiValues", new {});
}
Questo è il mio test di unità:
var valuesController = new ValuesController()
{
Request = new HttpRequestMessage
{
RequestUri = new Uri("http://localhost/api/")
},
Configuration = new HttpConfiguration()
};
valuesController.Get();
anche io ho provato ad aggiungere questo al test dell'unità:
valuesController.Configuration.MapHttpAttributeRoutes();
valuesController.Configuration.EnsureInitialized();
Ma questo non ha aiutato nulla.
E 'strano che io non posso repro il problema. Tutto funziona bene sulla mia macchina. Qual è la versione di webapi che hai usato? Hai fornito tutto il tuo codice di prova? Penso che il test unitario non verrà eseguito sulla parte di attributo di routing. –
Che cos'è "urlHelper" nell'azione del controller? Puoi condividere tutto questo? Grazie –