Today, someone asked my help when using an external package that needed to access the $_POST variable, it wasn't being set when running the test suite while working when getting a real request. It got me investigating.
Turns out Laravel instantiates the Requests and have them through the framework, so it basicly fakes an incoming native request.
Use the gist bellow to get the trick working, unless you are using an external package you should rethink when using $_POST nowadays, but hey, I'm not judging.