J'ai un contrôleur qui fonctionne sur mon site mais qui échoue lors des tests unitaires. C'est assez simple et dépend de Linq to Sql pour retourner une collection d'objets JSON.Test de l'unité MVC avec Linq to Sql
Le test échoue car le DataContext ne peut pas trouver la chaîne de connexion lorsqu'il est appelé depuis l'extérieur du projet MVC.
J'ai eu un coup d'oeil dans le code généré automatiquement:
public DC():
base(global::System.Configuration.ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString, mappingSource)
{
OnCreated();
}
Le projet Web peut trouver l'entrée « myConnectionString » dans web.config, mais le projet de test ne peut pas le trouver. Le message d'erreur que je suis arrivé était:
Test method MyMVCApp.Controllers.HomeControllerTest.IndexShouldReturnIssues threw exception: System.NullReferenceException: Object reference not set to an instance of an object..
Je ne veux pas passer une autre chaîne de connexion de mes tests unitaires parce que je veux vérifier que la chaîne de connexion dans le web.config fonctionne.
Merci, John
Regardez cette réponse pour voir comment tester efficacement et avec succès avec LINQ to SQL: http://stackoverflow.com/questions/4128640/how-to-remove-unit-of-work-functionality-from-repositories- using-ioc/4132186 # 4132186 – Steven