在Symfony2中测试2个连续的客户端请求

时间:2013-09-30 15:13:17

标签: php unit-testing symfony

在Symfony2中,如果行为正常,我想测试带有2个后续请求的控制器操作 第一个请求将分析数据库并采取适当的操作,第二个请求也将分析数据库并采取不同的操作。

我的代码如下:

protected function setUp() {
    $this->_client = static::createClient();
    $kernel = static::$kernel;
    $kernel->boot();
    $this->_em = $kernel->getContainer()->get('doctrine.orm.default_entity_manager');
    $this->_em->beginTransaction();
}

public function testAddToCartWith2Posts() {
    $this->addObjects(); // Initialize the database
    $object = static::$kernel->getContainer()->get('doctrine')->getRepository('BaseBundle:Object')->findAll()[0];
    $id = $object->getId();

    $crawler = $this->_client->request('POST', '/cart/add/' . $id);
    $crawler = $this->_client->request('POST', '/cart/add/' . $id);

    $session = static::$kernel->getContainer()->get('session');
    $cart = $session->get('cart');
    $this->assertEquals($session->getId(), $cart->getSession());
    $this->assertEquals(2, count($cart->getCartItems()));        
}

第一个请求能够读取对象列表。第二个请求不是。
请求之间数据库变空。我怎么能解决这个问题?

0 个答案:

没有答案