Skip to content

Latest commit

 

History

History
68 lines (41 loc) · 3.3 KB

isolated-mongodb-integration-tests.md

File metadata and controls

68 lines (41 loc) · 3.3 KB

Note du traducteur

C'est la traduction du fichier isolated-mongodb-integration-tests.md. Voici un lien vers les différences avec le master de AVA (Si en cliquant sur le lien, vous ne trouvez pas le fichier isolated-mongodb-integration-tests.md parmi les fichiers modifiés, vous pouvez donc en déduire que la traduction est à jour).


Configuration d'AVA pour les tests d'intégration isolés de MongoDB

Traductions : English

Comment exécuter les bases de données MongoDB à usage unique dans vos tests AVA avec une isolation pour chaque test. Pour cela, on utilise mongomem qui est disponible sur npm.

Pour cela, on utilise MongoMem qui vous permet de gérer rapidement un serveur temporaire MongoDB localement. Il utilise temporairement un stockage de fichiers qui sera détruit lorsque le serveur s'arrêtera.

Installez un serveur MongoDB en mémoire (MongoMem)

A la racine de votre application, exécutez :

$ npm install --save-dev mongomem

Utilisation de MongoMem

Dans votre fichier de test, importez le module et exécuter le serveur.

Assurez-vous d'exécuter le serveur au début de votre fichier et en dehors des cas de test.

import test from 'ava';
import {MongoDBServer} from 'mongomem';

test.before('start server', async t => {
	await MongoDBServer.start();
})

test('some feature', async t => {
	const connectionString = await MongoDBServer.getConnectionString();

	// connectionString === 'mongodb://localhost:27017/3411fd12-b5d6-4860-854c-5bbdb011cb93'
	// utilisez `connectionString` pour se connecter à la base de données avec un client de votre choix. Regardez ci-dessous pour une utilisation avec Mongoose.
});

Nettoyage

Après avoir exécuté vos tests, vous devez inclure une méthode test.after.always pour nettoyer le serveur MongoDB. Cela supprimera tous les fichiers temporaires utilisés par le serveur lors de l'exécution.

Ceci est normalement nettoyé par votre système d'exploitation, mais il est recommandé de le faire manuellement.

test.after.always('cleanup', t => {
	MongoDBServer.tearDown(); // Nettoie les fichiers temporaires de stockage
});

Débogage

Si le serveur ne semble pas démarrer, vous pouvez définir l'option MongoDBServer.debug = true; avant d'appeler MongoDBServer.start(). Cela permettra au serveur MongoDB d'afficher des erreurs de connexion ou d'autorisation de fichier lors de son démarrage. Comme il vérifie et choisit un port disponible pour exécuter le serveur, les erreurs sont donc susceptibles d'être liées aux autorisations de fichier.

Extra : configuration et utilisation dans Mongoose

Mongoose est un robuste Object-Document-Mapper (ODM) pour MongoDB. Reportez-vous à sa documentation pour débuter avec Mongoose.

Pour utiliser efficacement Mongoose avec AVA, consultez les documents d'intégration Mongoose.