Mam niektóre funkcje, które czytają & modyfikować pliki. Aby testy jednostki były niezależne od problemów związanych z systemem plików, chcę dołączyć pliki do projektu.W tym plik zasobów dla testu jednostki w projekcie C#
Jednak moja funkcja powinna uzyskiwać ścieżkę filePath, a wszystko, co mogę uzyskać ze złożenia, to FileStream. Masz pomysł, jak uzyskać ścieżkę do pliku zasobów w projekcie?
System.Reflection.Assembly a = System.Reflection.Assembly.Load(assemblyName);
FileStream stream = a.GetFile(assemblyName + "." + fileName);
Dzięki!
IMHO takie dane testowe nie powinny być wbudowane w teście i powinny być dostarczane osobno (co pozwala także ponownie uruchomić test z różnych danych bez przebudowy). Jakich problemów z systemem plików martwisz? –
Nie podoba mi się, że testy jednostek zależą od zasobów zewnętrznych, które można zmieniać, przenosić, zmieniać itd. Ten test jednostkowy jest wykonywany w celu sprawdzenia 1 scenariusza i chcę, aby ten dokładny scenariusz był testowany, więc powinien być niezależny od tego, czy uprawnienia do pliku mogą zostać zmienione, zbyt wiele programów do obsługi plików jest otwartych, dysk NTFS jest niedostępny i tak dalej. – Yossale
Myślę, że to bardzo dobre pytanie. Jeśli chodzi o rzeczywiste testy jednostkowe, to przyznaję, że należy unikać używania plików, ale jeśli pomyślimy o testach integracyjnych (np. Obecnie piszę czytnik plików), używając "prawdziwych" danych testowych ma sens imho. – anhoppe