Witam. Mam małą zagwozdkę i nie wiem do końca jak to zrobić.
Mam pewną logike, która w danym momencie potrzebuje wczytać plik (xml). Jak zorganizować klasy aby kod był testowalny jednostkowo?.
Chodzi mi głównie o przetestowanie zwyczajnego ifa if (File.Exists(filePath)
powiedzmy mam klasę którą mogę zmockowac i coś tam zwracac przy wowołaniu LoadFile w testach.
class XDocumentLoader : IXDocumentLoader
{
public XDocument LoadFile(string path) => XDocument.Load(path)
}
i druga klasa
class FileWrapper : IFileWrapper
{
public bool FileExists(string path) => File.Exists(path)
}
i chciałbym zorbić test w zalezności od FileExists. Co generalnie jest proste. Mockuje sobie IFileWrapper oraz IXDocumentLoader i jeśli IFileWrapper zwróci true to wywołuje ładowanie pliku a jeśli nie to nie ładuje pliku i zwracam powiedzmy nulla.
I w sumie tak mogło by być ale zastanawia mnie ten XDocumentLoader, który rzuci exceptionem jeśli ktos go wywoła bez FileExists.
Czy może za bardzo kombinuje i kod jest zbyt prosty aby go testować jednostkowo?