47 votes

Comment se moquer de MySQL (sans ORM) dans Node.js ?

J’utilise avec le client de [](https://github.com/felixge/node-mysql) felixge. Je n’utilise pas d’ORM.

Je teste avec Vows et je veux pouvoir me moquer de ma base de données, éventuellement en utilisant Sinon. Comme je n’ai pas vraiment de DAL en soi (à part `` ), je ne sais pas vraiment comment m’y prendre. Mes modèles sont pour la plupart de simples CRUD avec beaucoup de getters.

Avez-vous des idées sur la façon d’y parvenir?

12voto

Bijou Trouvaille Points 1067

Il peut être judicieux d’abstraire votre base de données dans sa propre classe qui utilise mysql. Ensuite, vous pouvez transmettre l’instance de cette classe aux constructeurs de votre modèle au lieu de la charger à l’aide de require().

Avec cette configuration, vous pouvez passer une instance de base de données fictive à vos modèles à l’intérieur de vos fichiers de test unitaire.

Voici un petit exemple :

5voto

cameck Points 696

J’ai fini par commencer par la réponse de @kgilpin et j’ai fini par quelque chose comme ceci pour tester Mysql dans un AWS Lambda :

Je ne voulais pas de connexions de base de données réelles, alors je me suis moqué manuellement de toutes les réponses mysql.
En ajoutant une autre fonction à vous pouvez simuler n’importe quelle méthode hors de .

3voto

dule Points 1830

Vous pouvez simuler des dépendances externes à l’aide de horaa

Et je crois aussi que le module sandbox de nœud de felixge peut également faire quelque chose de similaire.

Donc, en utilisant le même contexte de kgilpin, dans horaa, cela ressemblerait à quelque chose comme:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X