Come evitare il reindirizzamento alla pagina “enable-cookies” durante la prova di unità di controllo?

magento.stackexchange https://magento.stackexchange.com/questions/655

Domanda

Sto facendo un test molto semplice controllore utilizzando Ecomdev_PHPUnit:

class Foo_BarWishlist_Test_Controller_IndexController 
    extends EcomDev_PHPUnit_Test_Case_Controller
{

    /**
     * @test
     * @loadFixture ~Foo_BarWishlist/default
     */
    public function fromcartAction()
    {
        $this->dispatch('checkout/cart/add', array('product' => 10));
        $this->assertRequestDispatched();
        $body = self::getResponse()->getOutputBody();
        $this->assertResponseBodyContains('success-msg');
    }

  ...

Questo test ha esito negativo perché $body è vuoto. Durante il controllo self::getResponse() più da vicino, vedo che un redirect alla pagina enable-cookies CMS è stato inviato.

Come posso prendere cura di questo? Devo impostare manualmente il check-biscotto? Devo aprire un'altra pagina prima (ho provato già un $this->dispatch('/') prima della spedizione reale)? O c'è un problema generale di cookie durante le prove del controller?

È stato utile?

Soluzione

C'è una regolazione per esso nel pannello di amministrazione:

Web> (Funzionalità del browser Detection) Reindirizza a CMS-pagina se i cookie sono disattivati ??

Questa impostazione può anche essere impostata durante i test utilizzando un dispositivo di configurazione.

Altri suggerimenti

Credo che questo overflow di risposta dello stack vi aiuterà:
https://stackoverflow.com/questions/14612349/cant-get- session-Singleton-in-ecomdev-phpunit-test

L'idea di base è quella di prendere in giro la sessione in modo allora la vostra azione "aggiungi al carrello" è successo, invece di reindirizzare al "cookie disabile" pagina.

$sessionMock = $this->getModelMockBuilder('admin/session')

    // This one removes `session_start` and other methods
    ->disableOriginalConstructor()

    // Enables original methods usage, because by default it overrides all methods
    ->setMethods(null)

    ->getMock();

$this->replaceByMock('singleton', 'admin/session', $sessionMock);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top