Question

J'écris un programme ruby ??qui exécute des utilitaires de ligne de commande externes. Comment puis-je simuler le système de fichiers à partir de mes tests rspec afin de pouvoir facilement configurer une hiérarchie de fichiers et la vérifier après les tests? Il serait également préférable de mettre en œuvre RAM pour que les tests soient exécutés rapidement.

Je me rends compte qu'il est possible que je ne trouve pas de solution portable, car mes utilitaires externes sont des programmes natifs interagissant directement avec les services de fichiers du système d'exploitation. Linux est ma plate-forme principale et une solution suffirait.

Était-ce utile?

La solution

Peut-être que cela ne répondra pas directement à votre question, mais dans ce cas, j’ai tendance à créer un répertoire temporaire lors de la configuration du test et à le supprimer lors du démontage. Bien sûr, vous devez également vous assurer que l'application écrit dans ce répertoire temporaire. J'ai toujours une option de configuration définissant le répertoire de destination que je peux écraser lors des tests.

Pour les assertions, j'utilise plain File.exist? ou File.directory? , mais vous pouvez bien sûr créer vos propres wrappers. Si vous avez besoin d’un état initial, vous pouvez créer un répertoire pouvant être utilisé comme une installation et qui sera copié dans le répertoire temporaire lors de la configuration du test.

Autres conseils

Avez-vous vérifié FakeFS ou MockFS ?

Remarque: le lien d'origine vers MockFS ne fonctionne pas. Il semble être qu'il n'est plus mis à jour.

Vous pouvez créer un gros fichier (la taille de votre disque factice) et le monter en tant que dispositif de bouclage . Vous pouvez créer n’importe quel système de fichiers ou structure de répertoires sur cet appareil.
Vous pouvez en créer 2 et même comparer des différences simples pour assurer l'intégrité des données après les tests.
J'espère que je comprends vos exigences correctement, car je ne sais pas pourquoi la solution simple de disque mémoire n'est pas suffisante.
Cela pourrait également être pertinent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top