1

在 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()));        
}

第一个请求能够读取对象列表。第二个要求不是。
数据库在请求之间变为空。我该如何解决这个问题?

4

0 回答 0