First of I'm not sure if I chose the right name for my question, I'm not sure if they are functional tests or integration ( or other ). I'm talking about tests which test (or it should) the app from a http request to database.
With simple controllers where they query the db for some data it's pretty easy to test them. Problem comes when things get complicated. When events are fired and there are a few listeners, which either send emails, create pdfs, make api calls. What's the best practice in this case ? Mock this events and ensuring from the functional tests that they are called with the right parameters? and unit test the events and listeners? or its safer to let them fire the events and see if the result is the expected one ?
In other words should functional and unit tests work together and should rely one on another ?
LE: I'm not trying to see benefits of unit vs integration, I just want to see how others do in the above scenarios.