Il est étonnant de voir l’étendue des fonctionnalités de base de données en mémoire créables avec une seule instance de List
Repository en mémoire
variable integer. Si vous concevez votre implémentation de substitution afin d’employer des génériques, vous pouvez créer quasiment instantanément un Repository de substitution capable d’émuler la fonctionnalité de base de données pour n’importe lequel de vos objets métier.
Dans l’exemple de code ci-dessus, vous pouvez constater que tout tourne autour de la propriété Items. Celle-ci contient tous les éléments dans la « base de données » et est la cible de toutes les requêtes LINQ. La méthode Save() prend une instance d’un objet métier et regarde si la propriété Id a la valeur 0 ou non. Si la valeur est 0, le
Repository de substitution simule une instruction INSERT en incrémentant la variable m_currentIdValue et en définissant la valeur sur la propriété Id de l’objet. Une fois la valeur d’identité définie, la méthode Save() ajoute l’objet à la collection Items.
La méthode GetById() utilise la propriété Id sur l’interface IInt32Id et émet une requête LINQ sur la collection Items afin de trouver le premier objet avec la valeur Id. Pour créer la fonctionnalité de test unitaire UsernameExists(), vous devez implémenter la méthode GetByUser Name() définie sur IUser Repository. Pour cela, vous créez simplement une classe intitulée In MemoryUserReposi tory et étendez celle-ci à partir de Repository Mock
Avec cette implémentation en mémoire, vous ne vous souciez plus de savoir si la base de données est opérationnelle, si elle contient d’anciennes données et si elle comporte des contraintes de clé étrangère. La configuration pour le test UsernameExists() revient à ajouter simplement des instances
de User à la collection Items via des appels à Save(). Voici la logique de configuration pour le test Username Exists().
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Baromètre channel IT : fin du cuivre, essor de UCaaS et premiers pas vers l’IA
- Fraude par identité synthétique : comment l’IA peut redonner confiance aux entreprises et à leurs clients
- VirtualBrowser protège la navigation web à la source
- Innovation et performance : le rôle clé du consulting dans la transformation numérique
Articles les + lus
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
À la une de la chaîne Tech
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
