Question

Si mes tests unitaires reposent sur le système de fichiers et je dois se moquer de cela, ce qui est la meilleure façon d'aller à ce sujet?

Merci

Était-ce utile?

La solution

Vous avez essentiellement deux options: résumé eiter tous les fichiers système logique lié derrière un IFileSystemService, ou utilisez Stubs de Microsoft, qui est

  

... un cadre léger pour .NET qui fournit des bouts de test. Pour les interfaces et les classes non scellées, des emballages de typées sont générés qui peuvent être facilement personnalisés en attachant les délégués.

Autres conseils

Le système de fichiers est un excellent exemple de la façon dont TDD peut vous conduire vers une meilleure conception plus souple. Souvent, lorsque vous interagissez avec le système de fichiers, vous pouvez traiter la lecture et l'écriture de fichiers en utilisant Flux ou TextWriters au lieu de fichiers réels.

Ce sont tous les types abstraits et sont donc faciles à se moquer.

Maintenant, vous avez une API plus flexible car il est pas étroitement couplé au système de fichiers, mais prend toujours en charge les opérations de fichiers.

Disclaimer Je travaille à Typemock.

Je suis heureux de dire que nos dernières versions prennent en charge les types de System.IO suivants à raillé:

  • Fichier
  • Répertoire
  • FileStream

Il y a un court exemple:

public void Test()
{
    string path = @"C:\TypemockCan.txt";

    Isolate.WhenCalled(() => File.Exists(null)).WillReturn(true);

    Assert.IsTrue(File.Exists(path));
}

Voir plus .

scroll top