2010-06-21 3 views
0

Je suis nouveau dans le web dev et j'ai des questions suivantesTest de projet de site Web avec NUnit

J'ai projet de site Web. J'ai une classe datacontext dans le dossier App_Code qui contient des méthodes pour travailler avec la base de données (le schéma dbml y est également présent) et des méthodes qui n'interfèrent pas directement avec db. Je veux tester les deux types de méthodes en utilisant NUnit. Comme Nunit travaille avec des classes en .dll ou .exe, j'ai compris que je devrais soit convertir mon projet entier en application Web, ou déplacer tout le code que je voudrais tester (ie: le contenu entier App_Code) dans un projet de bibliothèque de classes et référence le projet de bibliothèque de classes dans le projet de site Web.

Si je choisis de déplacer des méthodes pour séparer dll, la question est comment puis-je tester ces méthodes qui travaillent avec la base de données? :

  • Est-ce que je dois créer une connexion à db dans la méthode « setup » avant d'exécuter chacune de ces méthodes? Est-ce correct qu'il n'y a pas besoin d'exécuter web appl dans ce cas?

  • Ou dois-je effectuer de tels tests pendant l'exécution du site Web lorsque la connexion est établie? Dans ce cas, comment configurer le projet et Nunit?

  • ou d'une autre façon ..

Deuxièmement, si une méthode dépend une certaine configuration dans mon fichier .config, par exemple des informations d'identification réseau ou la configuration de smtp, quelle est l'approche de tester ces méthodes ?

J'apprécie beaucoup toute aide! Plus c'est concret, mieux c'est. Merci.

Répondre

1

Généralement, vous devriez vous moquer de votre base de données plutôt que de vous y connecter réellement pour vos tests unitaires. Cela signifie que vous fournissez des fausses instances de classe d'accès aux données qui renvoient des résultats prédéfinis. Généralement vous utiliseriez un cadre moqueur comme Moq ou Rhino pour faire ce genre de chose pour vous, mais beaucoup de gens écrivent aussi leurs propres classes jetables pour servir le même but. Vos tests ne doivent pas dépendre des paramètres de configuration du site Web de production.

Il y a plusieurs raisons à cela, mais il s'agit principalement de séparer vos tests de l'implémentation de votre base de données. Ce que vous décrivez produira des tests très fragiles qui nécessitent beaucoup d'entretien. Rappelez-vous, les tests unitaires consistent à s'assurer que les petites pièces de votre code fonctionnent. Si vous devez tester qu'une opération complexe fonctionne de haut en bas (tout fonctionne entre les étapes de l'utilisateur qui clique sur un élément, récupère des données dans une base de données, les restitue et met à jour une interface utilisateur). Si vous devez effectuer des tests d'intégration complets, il est généralement recommandé d'avoir un duplicata de votre environnement de production - et je veux dire exact dupliquer, même matériel, logiciel, tout - sur lequel vous lancez vos tests d'intégration.

+0

Thx pour des explications! Comme j'ai besoin exactement de tests unitaires, je vais enquêter plus loin sur l'utilisation correcte de NUnit avec le site Web – qwebek

Questions connexes