title: Testing Laravel facades with mockery always passes, even when it should fail
body: <p>I'm trying to mock some facades in Laravel during unit testing, but it seems that the tests always pass no matter what.</p>
  
  <p>For example, this example taken from the Laravel docs here:</p>
  
  <pre class="lang-php prettyprint-override"><code>Event::shouldReceive('fire')-&gt;once()-&gt;with('foo', array('name' =&gt; 'Dayle'));
  </code></pre>
  
  <p>It seems I can put that in any of the test methods and they always pass even though nothing of the sort has been done with the <code>Event</code> facade.</p>
  
  <p>Here is the test class:</p>
  
  <pre class="lang-php prettyprint-override"><code>class SessionsControllerTest
  extends TestCase
  {    
      public function test_invalid_login_returns_to_login_page()
      {
          // All of these pass even when they should fail
          Notification::shouldReceive('error')-&gt;once()-&gt;with('Incorrect email or password.');
          Event::shouldReceive('fire')-&gt;once()-&gt;with('foo', array('name' =&gt; 'Dayle'));
          Notification::shouldReceive('nonsense')-&gt;once()-&gt;with('nonsense');
  
          // Make login attempt with bad credentials
          $this-&gt;post(action('SessionsController@postLogin'), [
              'inputEmail'     =&gt; 'bademail@example.com',
              'inputPassword'  =&gt; 'badpassword'
          ]);
  
          // Should redirect back to login form with old input
          $this-&gt;assertHasOldInput();
          $this-&gt;assertRedirectedToAction('SessionsController@getLogin');
      }
  
  }
  </code></pre>
  
  <p>What am I missing in order to test Facades? Am I right in thinking that I should be able to call <code>shouldReceive()</code> on any Laravel Facade without any setup?</p>