J'ai créé un projet standard ASP.NET MVC puis ajouté une base de données SQL Express dans le dossier App_Data . La chaîne de connexion est enregistrée dans le fichier web.config. J'ai ensuite créé un modèle de données LINQ to SQL pour la base de données. Je veux tester le modèle de données de mon projet de test mais je ne sais pas comment procéder correctement car j'utilise une base de données attachée. Puisque la base de données est attachée au projet MVC et non au projet Test, comment pourrais-je y accéder à partir du projet Test?Comment faire pour tester Modèle de base de données joint dans mon projet ASP.NET MVC?
Répondre
Si vous parlez de tests unitaires, ils devraient pouvoir fonctionner sans la base de données. L'idée est que votre code est divisé en blocs réutilisables qui peuvent être testés individuellement en transmettant des données mockées/stubbed.
Sohnee est correct; un test unitaire ne doit pas avoir de dépendances sur votre base de données de production. On dirait que vous cherchez à faire des tests d'intégration plus larges, peut-être?
Je pourrais entrer dans les détails à ce sujet, mais je ne pense pas que ce soit ce que vous cherchez. Pourriez-vous préciser ce que vous voulez dire ou ce que vous voulez accomplir en «testant le modèle de données?
Certaines écoles de pensée sont très strictes sur ce que devrait être un test unitaire et non. D'autres pas tellement.
Tout est une question de préférences, je pense. Rappelez-vous juste qu'il est facile d'oublier de tester la vraie chose quand vous vous moquez de tout.
Mais pour répondre à votre question, que se passe-t-il si vous créez simplement le contexte de données dans votre test? Pouvez-vous interroger, ou obtenez-vous des exceptions de connexion étranges? Si ce dernier cas est le cas, et vous voulez toujours tester contre votre base de données, je suppose que vous devez copier le fichier de base de données à un endroit où votre test peut l'atteindre. Quoi qu'il en soit, vous pouvez passer la chaîne de connexion au constructeur de contexte de données.
Merci pour votre réponse rapide! Mais cela signifie-t-il que les tests unitaires ne doivent pas être utilisés pour tester votre modèle de données en utilisant des données réelles? Je pensais que ce serait un test plus précis si j'utilise des données en direct au lieu de données fabriquées. LOL Peut-être que je n'ai pas compris le but des tests unitaires. Mais j'espère que quelqu'un l'a déjà fait et faites-moi savoir si cela peut être fait. – anonymous