私はphpunitでZend Frameworkのショッピングカート、チェックアウト、支払い処理をテストしています。私はShoppingCartController
を商品に追加してテストしています。ShoppingCart
モデルは、商品IDをZend Session Namespaceに保存して製品追加を処理し、別のテストで商品が追加されたことをテストしたいと思います。同じShoppingCart
モデルは、同じZend Session名前空間変数から追加された製品のリストを取得します。phpunitのすべてのテストを通してセッションを保存するには?
アドオン製品のテストは次のようになりますし、うまく機能、およびvar_dump($_SESSION)
がデバッグに加え、正しく製品を示しています
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);
}
第二の試験がそうするモデルを尋ねることによって製品を取得しようとしテスト開始時には既にvar_dump($_SESSION)
がヌルです。 セッション変数がリセットされました。私はそれらを保持する方法を見つけたいと思います。間違った方向にあなたを指しているため
public function testCanDisplayShoppingCartWidget() {
var_dump($_SESSION);
$this->dispatch($this->getRouteUrl("view_shopping_mini_cart"));
$this->assertResponseCode('200');
}
大丈夫、私はそれを試してみます – Daniel
ありがとう、それは期待どおりに働いた! – Daniel
セッションbeetweenテストケースを共有するにはどうすればよいですか? – Daniel