Wie zu bewahren Sitzung durch alle tests auf phpunit?

Arbeite ich auf Tests, die einen Warenkorb, Kasse, Bezahlvorgang, die auf Zend-Framework phpunit. Ich Teste ShoppingCartController durch hinzufügen von Produkten zum Warenkorb, ein ShoppingCart Modell Griffe Produkt-Ergänzungen durch die Speicherung von Produkt-id ' s in einer Zend Session Namespace, und dann in einem anderen test ich möchte testen, ob die Produkte Hinzugefügt wurden. Das gleiche ShoppingCart Modell ruft eine Liste der hinzugefügten Produkte aus der gleichen Zend Session namespace-variable.

Hinzufügen Produkt-test sieht wie folgt aus und funktioniert gut, und die var_dump($_SESSION) wurde Hinzugefügt, um debugging und zeigt die Produkte korrekt:

public function testCanAddProductsToShoppingCart() {

    $testProducts = array(
        array(
            "product_id" => "1",
            "product_quantity" => "5"
        ),
        array(
            "product_id" => "1",
            "product_quantity" => "3"
        ),
        array(
            "product_id" => "2",
            "product_quantity" => "1"
        )
    );

    Ecommerce_Model_Shoppingcart::clean();

    foreach ($testProducts as $product) {
        $this->request->setMethod('POST')
                ->setPost(array(
                    'product_id' => $product["product_id"],
                    'quantity' => $product["product_quantity"]
                ));

        $this->dispatch($this->getRouteUrl("add_to_shopping_cart"));
        $this->assertResponseCode('200');
    }

    $products = Ecommerce_Model_Shoppingcart::getData();
    $this->assertTrue($products[2][0]["product"] instanceof Ecommerce_Model_Product);
    $this->assertEquals($products[2][0]["quantity"],
            "8");

    $this->assertTrue($products[2][1]["product"] instanceof Ecommerce_Model_Product);
    $this->assertEquals($products[2][1]["quantity"],
            "1");

    var_dump($_SESSION);
}

Zweiten test versucht, abrufen der Produkte von Fragen, das Modell so zu tun, die var_dump($_SESSION) null ist bereits am Anfang der Prüfung. Die session-Variablen zurückgesetzt wurden, möchte ich einen Weg finden, Sie zu konservieren, kann jemand helfen?

public function testCanDisplayShoppingCartWidget()  {
    var_dump($_SESSION);
    $this->dispatch($this->getRouteUrl("view_shopping_mini_cart"));
    $this->assertResponseCode('200');
}
InformationsquelleAutor Daniel | 2012-02-21
Schreibe einen Kommentar