[.NET] Comment réaliser des tests unitaires sur une couche d’accès aux données qui utilise une base de données ?

Lorsque l’on développe sa couche d’accès aux données (à la main, via Entity Framework ou tout autre ORM) il est nécessaire comme tout code de le tester ! Beaucoup de développeurs ne testent pas leur couche d’accès aux données car ils considèrent que « cela ne se fait pas ». Or, pour moi, tout code qui est pondu par un développeur doit être testé sans exception ! Un code non testé est un code dont le développeur ne peut garantir son fonctionnement…

Cet article a pour vocation de vous montrer différentes stratégies qui existent et qui sont utilisés (que j’ai déjà rencontré à travers différentes missions) avec leurs inconvénients. A la fin de cet article, j’expliquerai une stratégie simple que j’applique systématiquement depuis 8 ans pour tester les couches d’accès aux données via des tests unitaires.

Continuer la lecture

[.NET] Attention à la redéfinition de la méthode GetHashCode()

Aujourd’hui, un développeur d’un client m’a signaler un « bug » dans la classe Dictionary<TKey, TValue> du .NET Framework. Après avoir étudié son problème pendant plus de 2 heures, (et je ne vous parle pas de mes cheveux !), le bug du Dictionary<TKey, TValue> venait du fait qu’il avait redéfini la méthode GetHashCode() sur un objet qui se basait sur des champs non-immuables !

Continuer la lecture