filesystem Mocking
-
20-09-2019 - |
Domanda
Se il mio test di unità si basano sul sistema di file e ho bisogno di prendere in giro questo, qual è il modo migliore per andare su questo?
Grazie
Soluzione
Che, fondamentalmente, sono due opzioni: Eiter estratto tutti i file-system logica relativa dietro una IFileSystemService
, o utilizzare stub da Microsoft, che è
... un quadro leggero per NET che fornisce stub prova. Per le interfacce e classi non sigillato, involucri type-safe vengono generati che possono essere facilmente personalizzati collegando delegati.
Altri suggerimenti
Il file system è un ottimo esempio di come TDD può guidare verso una migliore progettazione, più flessibile. Spesso, quando si interagisce con il file system, si può trattare con i file di lettura e scrittura utilizzando Streams o TextWriters al posto di file effettivi.
Questi sono tutti i tipi astratti e così sono facili da prendere in giro.
Ora avete un'API più flessibile perché non è strettamente accoppiato al file system, ma continua a sostenere le operazioni sui file.
Necessario: interfacce e implementazione del sistema di file in .NET potrebbe essere utile
Diniego Io lavoro in Typemock.
Sono contento di dire, che le nostre ultime versioni supportano i seguenti tipi di System.IO da beffeggiare:
- File
- Directory
- FileStream
C'è un breve esempio:
public void Test()
{
string path = @"C:\TypemockCan.txt";
Isolate.WhenCalled(() => File.Exists(null)).WillReturn(true);
Assert.IsTrue(File.Exists(path));
}