2015-03-26 1 views
0

Est-ce que tout ce qui est décrit ci-dessous existe?Tous les cadres d'automatisation générés à partir de données réelles dans la base de données

Salut, je suis un programmeur C# et javascript. Lors de la création de tests, le point de douleur pour moi est la création des dépendances de test. Surtout quand je fais des assertions contre les valeurs que j'attends dans la base de données.

Je sais que l'écriture de tests qui effectuent des appels à la base de données est une mauvaise pratique car de nombreux appels de base de données peuvent ralentir l'ensemble de la suite de tests. L'alternative est que nous, en tant que développeurs, devons créer ces grands objets fantômes parfois compliqués qui contiennent les valeurs que la base de données retournerait autrement. Au lieu de cela, je voudrais créer mes tests sur une base de données réelle. Ensuite, j'aimerais que mon test exécute l'application ou le framework de test pour prendre note de l'objet renvoyé par la base de données. Le cadre de test remplacerait la dépendance à la base de données par un objet stub créé automatiquement pour toutes les exécutions suivantes de ce test. Essentiellement, la base de données ne serait frappée que la toute première fois qu'un test est exécuté et à partir de ce moment, elle utiliserait à la place les données qu'elle a récupérées à la première passe du test en tant qu'objet stub ou fictif.

Cela réduirait totalement le besoin de créer manuellement un objet à des fins de test.

+0

Bien que cela ne répond pas directement à votre question, la plupart des frameworks de virtualisation de services prennent en charge cette fonctionnalité. –

+0

Il existe d'autres alternatives: vous pouvez créer une base de données en mémoire pour chaque test ou vider/supprimer la base de données après chaque test et la remplir/la créer avant la suivante. –

Répondre

0

Vous pouvez utiliser AutoFixture pour créer les données.

Il a certains support pour les annotations de données, mais vous auriez probablement encore besoin de l'ajuster considérablement pour s'adapter à votre schéma de base de données particulier.