Aller au contenu principal
Notification
ITPro
  • Ressources IT
  • Newsletter
Se connecter
S’inscrire
  • Cloud & Infrastructure
  • Cybersécurité
  • Data & IA
  • Workplace et Endpoints
Se connecter
S’inscrire
  • Facebook
  • X
  • Linkedin
  • Instagram

Inscrivez-vous

Newsletter iTPro

  • Cloud & Infrastructure
  • Cybersécurité
  • Data & IA
  • Workplace et Endpoints
  • Cloud & Infrastructure
  • Cybersécurité
  • Data & IA
  • Workplace et Endpoints
  1. Accueil
  2. Data & IA
  3. Bases de données modernes
  4. Dossier SQL Server : Débarassez-vous des dépendances de base de données dans le développement orienté tests (2/3)

Sommaire

Tech stories

  • Tech Stories

    Sous-titres vidéo : formats SRT, VTT et bonnes pratiques

  • Tech Stories

    Sécuriser sa téléphonie IP : 5 failles critiques à anticiper

Bases de données modernes

Dossier SQL Server : Débarassez-vous des dépendances de base de données dans le développement orienté tests (2/3)

Par

Benjamin Day
Date
30 novembre 2010
Temps de lecture
2 minutes

En suivant ces sept conseils, vous serez prêt à faire face à un sinistre, voire éviterez le problème des tests d’intégration de bout en bout avec le modèle de développement (Repository pattern). De nombreux développeurs doivent écrire des tests unitaires dans le cadre d’une généralisation de la conception et du développement axés sur les tests.

Sommaire

Un moyen remarquable de séparer la méthode UsernameExists() du code d’accès à la base de données consiste à introduire une interface et à appliquer le modèle Repository. Le rôle de ce modèle est d’isoler la fonctionnalité de modèle de domaine (objet métier) de la fonctionnalité d’accès aux données. Un modèle Repository fournit une interface simple pour enregistrer et récupérer les objets métier, et pour encapsuler les détails d’implémentation du travail. Voici une conception d’interface Repository pour l’objet User.

Dans une application à n niveaux qui utilise le modèle de domaine et enregistre sur la base de données, il vous faut un moyen de distinguer un objet d’un autre. C’est ce que l’on appelle l’identité d’un objet. La valeur d’identité pour un objet est généralement identique à la colonne de clé primaire pour la table qui stocke les données.
Lorsque vous créez une application à n niveaux, essayez de faire en sorte que tous les objets utilisent la même propriété pour décrire leur identité. Cette approche permet d’avoir un modèle d’objet propre et cohérent. Vous pouvez appliquer cette cohérence en créant une interface qui permet d’accéder à la propriété d’identité pour vos objets. Dans l’exemple d’application de cet article, il s’agit de l’interface IInt32Id, laquelle définit une seule propriété nommée Id et désigne un entier.

Tous les objets de modèle de domaine implémentent IInt32Id, ce qui contribue à conserver une conception propre et cohérente pour vos référentiels. Afin de bénéficier d’une bonne réutilisation, une interface IRepository<T> définit les opérations CRUD pour tous les objets métier dans l’application. Si un objet métier a besoin de méthodes Repository absentes de IRepository<T>, vous pouvez créer une interface spécifique à l’objet et y ajouter la méthode. Dans le cas de la fonctionnalité UsernameExists(), une interface IUserRepository implémente IRepository<User> et possède une méthode GetByUserName().

Maintenant que vous avez défini les interfaces Repository, vous pouvez réusiner UserFacade afin d’employer cette interface pour l’accès aux données au lieu de l’objet UserDataAccessObject. Même si l’exemple de code ci-dessus est très similaire au code original, l’objet UserFacade ne se préoccupe plus de l’implémentation d’accès aux données utilisée. Tant que vous fournissez une instance de IUserRepository sur le constructeur, la méthode UsernameExists() a tout le nécessaire pour effectuer son travail. En masquant cette logique derrière une interface et en la passant au constructeur, vous avez l’opportunité d’utiliser une implémentation de substitution de IUserRepository.

Dans les tests unitaires, une simulation ou substitution (mock) est un objet qui implémente une interface et fournit une version simplifiée au lieu de l’implémentation complète que vous allez employer en production. Dans ce cas, vous pouvez passer un objet de substitution qui implémente IUserRepository et fournit la fonctionnalité de base de données en mémoire au lieu de faire appel à la base de données réelle.

Tech Stories

Sous-titres vidéo : formats SRT, VTT et bonnes pratiques

Le sous-titrage n'est plus une option mais un levier de croissance : 80 % des vidéos sur les réseaux sociaux sont consommées sans le son. Pourtant, choisir entre le format…

Lire l'article : Sous-titres vidéo : formats SRT, VTT et bonnes pratiques

Ressource IT

SIEM & PME : Comment construire la boîte noire de votre SI ?

Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et…

Découvrir la ressource : SIEM & PME : Comment construire la boîte noire de votre SI ?

Inscrivez-vous

Newsletter iTPro

Benjamin Day

Rédigé par Benjamin Day

Benjamin Day est un professionnel IT et rédacteur sur iTPro.fr : Découvrez ses articles informatique

Tous ses articles →

Bases de données modernes

À lire également...

  • BYOD - Les atouts cachés du Bring Your Own Model pour les entreprises - iTPro.fr
    Bases de données modernes

    Les atouts cachés du Bring Your Own Model pour les entreprises

    Par

    Sabine Terrey
    Date
    25 octobre 2024
    Temps de lecture
    4 minutes
  • Change Data Capture pour les entreprises qui réussisent
    Bases de données modernes

    Le Change Data Capture est l’avenir des entreprises qui réussissent

    Par

    Sabine Terrey
    Date
    22 mars 2024
    Temps de lecture
    4 minutes
  • comment_Migrer_vos_bases_de_donnees_dans_le_cloud
    Bases de données modernes Cloud & Infrastructure

    Migration des bases de données dans le cloud : mode d’emploi

    Par

    Sabine Terrey
    Date
    9 janvier 2023
    Temps de lecture
    4 minutes
  • Bases de données modernes Cloud & Infrastructure

    Pourquoi migrer ses bases de données dans le Cloud 

    Par

    Sabine Terrey
    Date
    12 décembre 2022
    Temps de lecture
    6 minutes
ITPro
  • X
  • Linkedin
  • Facebook
  • Instagram
Se connecter
S’inscrire
  • Cloud & Infrastructure
  • Cybersécurité
  • Data & IA
  • Workplace et Endpoints
  • Ressources IT
  • Espace responsable sécurité
  • Espace DSI
  • Espace Architecte IT
  • Espace IT Manager
  • Espace Responsable Data / IA

Inscrivez-vous

Newsletter iTPro

© iTPro.fr

  • Comité éditorial
  • Régie médias
  • Mentions-légales
  • Gestion et protection des données personnelles
  • Gestion des cookies
ITPro
Gérer le consentement aux cookies
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’internaute, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou la personne utilisant le service.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques. Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’internaute sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.
  • Gérer les options
  • Gérer les services
  • Gérer {vendor_count} fournisseurs
  • En savoir plus sur ces finalités
Voir les préférences
  • {title}
  • {title}
  • {title}