Je dois tester une classe dont la valeur de retour dépend des valeurs d'une base de données. Je pourrais juste frapper la base de données dans le test unitaire mais ces valeurs pourraient changer. Existe-t-il une solution standard à cela?Utilisation de MBUnit pour tester des valeurs dans une base de données
Répondre
La réponse standard consiste à redéfinir votre classe afin que vous puissiez simuler la dépendance. Ceci est généralement fait en injectant votre source de données en tant qu'interface dans votre classe.
par exemple. Vous pouvez avoir une classe qui agit comme ci-dessous
class John
{
public John() { }
public void Load()
{
// call to db in here e.g SQLCommand
}
}
charge dépend du SQLCommand de sorte que vous aurez toujours besoin d'appeler un db pour cette
Si vous injectez une interface DataSource vous avez plus de flexibilité
par exemple
class John
{ IDataSource _db;
public John(IDataSource db)
{
_db = db;
}
public void Load()
{
_db.Load("John"); // IDataSource can now be either SQL
//or hardcoded or what ever much easier to test
}
}
Maintenant, si vous ne pouvez pas/ne fera pas que vous devez traiter ce test comme un test d'intégration. Que diriez-vous de mettre en place des données pour cela. par exemple. insérez la ligne que vous voulez lire. Retournez ensuite les données à leur état d'origine. L'inconvénient est que votre test sera lent et fragile.
- 1. MbUnit: Tester une collection ordonnée personnalisée
- 2. Utilisation de Clojure pour tester l'unité Java
- 3. Utilisation de sélénium pour tester les données de l'élément jQuery()?
- 4. Insérer des valeurs de tableau dans la base de données
- 5. tester des applications de base de données Web avec maven
- 6. Utilisation d'un service Web pour sécuriser une base de données
- 7. Utilisation d'une classe java pour créer une base de données
- 8. Comparaison efficace des valeurs des lignes de base de données
- 9. Base de données de test pour tester les techniques d'optimisation des performances dans Oracle
- 10. Utilisation de Cucumber pour tester mon fournisseur OAuth dans Rails
- 11. Utilisation d'AJAX pour une page de mise à jour automatique contenant des valeurs d'une base de données?
- 12. Utilisation des valeurs par défaut de base de données avec LINQ to SQL codewise
- 13. stocker des valeurs dans la base de données tamil
- 14. Utilisation de SUDS pour tester WSDL
- 15. Comment stocker des valeurs dans la base de données C#?
- 16. Utilisation de MOQ pour tester le contrôleur
- 17. Quelle est la meilleure pratique pour compter des valeurs égales dans une base de données?
- 18. Comment obtenir des données d'une base de données vers une autre base de données?
- 19. Utilisation de Mockito pour tester des classes abstraites
- 20. base de données dynamique Utilisation
- 21. Utilisation de tarantula pour tester une application Rails
- 22. Utilisation de plusieurs valeurs pour une touche dans appSettings
- 23. Utilisation de sahi pour tester l'application sharepoint
- 24. Optimisation de la base de données SQL Server pour une base de données volumineuse
- 25. Conseils pour tester une application héritée de données intensives
- 26. Utilisation de Lucene comme une base de données relationnelle
- 27. Tableau de recherche des valeurs de la base de données
- 28. Données brutes ou valeurs précalculées dans la base de données?
- 29. Utilisation de NSPredicate avec des données de base NSFetchedResultsController
- 30. Comment tester un schéma de base de données django?