Witam
Piszę sobie w Symfony, mam już spory kawałek mojej aplikacji i w końcu wypadałoby też napisać testy. I tutaj pytanie jak to dobrze robić. Korzystam z PHPUnit i problem jaki spotkałem na samym początku to logowanie, którego wymaga moja aplikacja. W dokumentacji znalazłem jakiś "trick": http://symfony.com/doc/current/testing/http_authentication.html ale ten mi nie działa. Działa sposób z dołu, z tym że to nie może być u mnie tak po prostu podany login, ale muszę przy użyciu Doctrine pobrać tego usera z bazy. Gdy daję sam login wysypuje się gdzieś przy odwołaniu do app.user w Twigu, że nie ma tam obiektu usera, jest null. Z kolei gdy zrobię nowy obiekt usera to sypie się, że nie ma on id, więc też są jakieś problemy. Test jak rozumiem powinien być samodzielny, więc wychodzi na to, że przed jego wykonaniem muszę zrobić usera, zapisać go do bazy, zasymulować logowanie, wykonać test i na koniec usunąć usera z bazy? Wydaje się dużo, czy na pewno tak powinno to wyglądać?
W ogóle jak testować aplikację która operuje na bazie danych? Tworzyć i usuwać wszystko w danym teście, może mockować EntityManagera/repozytoria a może zrobić transakcję na początku testu i po zakończeniu ją wycofać co nie spowoduje zmian na bazie? Mam wrażenie, że znam ogólne założenia na temat testów, ale bardzo gubię się gdy trzeba zrobić coś konkretnego - chciałbym zrobić to dobrze, a nie do końca wiem jak :/
Z góry dziękuję za pomoc!