#programowanie
Mireczki mam apke java + spring. Chciałbym napisać junity do mojego serwisu, ale mam mały problem.
Metoda która chcę testować w skrócie, wczytuje plik z resource za pomocą class loadera z pliku czyta dane i tworzy listę obiektów. Jak argument metoda przyjmuję obiekt z którego jest wyciągany enum.
Na podstawie tego enuma jest tworzony string do pliku:
String filePath = "data/daily/stock/" + stock.getTicker().name() + ".txt"
Problem jest tego typu, że chciałbym np. żeby scieżka podczas testowania była inna. Ewentualnie rozważę inne propozycje.
Mireczki mam apke java + spring. Chciałbym napisać junity do mojego serwisu, ale mam mały problem.
Metoda która chcę testować w skrócie, wczytuje plik z resource za pomocą class loadera z pliku czyta dane i tworzy listę obiektów. Jak argument metoda przyjmuję obiekt z którego jest wyciągany enum.
Na podstawie tego enuma jest tworzony string do pliku:
String filePath = "data/daily/stock/" + stock.getTicker().name() + ".txt"
Problem jest tego typu, że chciałbym np. żeby scieżka podczas testowania była inna. Ewentualnie rozważę inne propozycje.
- Najlepsze
- Wszystkie komentarze







@pulla: nigdy, przenigdy, metody biznesowe nie pracują na plikach czy ściezkach - tylko na strumieniach dostarczanych z zewnątrz. W ten sposób raz, że mozna to łatwo zmienic, dwa, ze testowanie jest proste i da się potem zrobić bez użycia plików (co jest duzym smrodem w testach)
Druga sprawa to to co @M4ks napisał.
// klasa
List results;
void parse(Stream input) throws IOException
@pulla: nie, zrobic na czystych strumieniach. classLoader ma metode getResourceAsStream ktora zwraca input stream. I to przekazujesz do metody. W srodku mozesz to sobie obudowac w co chcesz w sumie.
ClassLoader classLoader = getClass().getClassLoader();String filePath = "data/daily/stock/" + stock.getTicker().name() + ".txt"
FileReader fileIn = new