Domanda

Sto cercando di prendere in giro alcune facciate a Laravel durante il test dell'unità, ma sembra che i test passino sempre, non importa cosa.

Ad esempio, questo esempio prelevato dai documenti Laravel qui:

Event::shouldReceive('fire')->once()->with('foo', array('name' => 'Dayle'));
.

Sembra che io possa metterlo in nessuno dei metodi di prova e passano sempre anche se nulla del genere è stato fatto con la facciata Event.

Ecco la classe di test:

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')->once()->with('Incorrect email or password.');
        Event::shouldReceive('fire')->once()->with('foo', array('name' => 'Dayle'));
        Notification::shouldReceive('nonsense')->once()->with('nonsense');

        // Make login attempt with bad credentials
        $this->post(action('SessionsController@postLogin'), [
            'inputEmail'     => 'bademail@example.com',
            'inputPassword'  => 'badpassword'
        ]);

        // Should redirect back to login form with old input
        $this->assertHasOldInput();
        $this->assertRedirectedToAction('SessionsController@getLogin');
    }

}
.

Cosa mi manca per testare le facciate?Ho ragione nel pensare che dovrei essere in grado di chiamare shouldReceive() su qualsiasi facciata di layavel senza alcuna configurazione?

È stato utile?

Soluzione

Hai bisogno di dire a derinery di eseguire la sua verifica.Puoi farlo mettendo

\Mockery::close();
.

Alla fine del metodo di prova o nel metodo di teatrodown della classe di test.

In alternativa, potresti impostare l'integrazione di phpunit della beffa aggiungendo questo al tuo phpunit.xml

<listeners>
  <listener class="\Mockery\Adapter\Phpunit\TestListener"></listener>
</listeners>
.

Vedi http://docs.mockery.io/en/latest/reference/phpunit_integrazione.html Per ulteriori informazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top