首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony5:为功能测试准备会话内容

Symfony5:为功能测试准备会话内容
EN

Stack Overflow用户
提问于 2021-01-12 06:46:40
回答 1查看 50关注 0票数 0

背景

我尝试创建一个功能测试(对于现有代码-我知道TDD,但无论如何,代码已经存在)。

这是一个使用多个步骤(每个单独的控制器-函数)的“预订”-process。通过将临时数据存储到会话中(在CART对象中),数据从一个步骤传递到另一个步骤。

问题

对于步骤3的测试,我需要准备购物车(至少有一个产品对象和一个PERSON对象)并将其存储到会话中,以便控制器函数可以使用它。

  • I可以获得会话,其中已经包含有一个产品
  • 的购物车,我可以将PERSON对象添加到CART-Object

中。

但是:如何将购物车对象存储回会话中?

谢谢你帮忙!

代码语言:javascript
复制
class BookingControllerTest extends WebTestCase {

   // ...

    public function testStep3_CustomerDataValidation() {
        // create the CLIENT
        $this->client  = static::createClient();

        // get random PRODUCT and add to CART
        $product = $this->getRandomProduct(1)->first();
        $this->addProductToCart($product);      // this is working! (creation of Session with cart-object inside)

        // add PERSON to CART-Object and store back into SESSION
        $session  = $this->client->getContainer()->get('session');
        $cart     = $session->get('cart');
        $person   = $this->personFactory->createPerson('Peter', 'Parker');
        $cart->setPerson($person);
        
        // --------------------------------------------------------
        // HOW TO STORE THE CART-OBJECT BACK INTO THE SESSION??????
        // --------------------------------------------------------

        // make the REQUEST (step 3) and assert it
        $this->client->request('GET', "/customer/validation");
        $this->assertResponseStatusCodeSame(200);

    }


    private function addCourseToCart(Product $product): void {

        // make REQUEST
        $urlAddItem = "/add/{$product->getSlug()}";
        $this->client->request('GET', $urlAddItem);

        // assert RESPONSE
        $this->assertResponseStatusCodeSame(302);
        $this->assertTrue($this->client->getResponse()->isRedirect('/show/cart'));
    }

    // ...

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 12:28:59

只需添加以下内容:

代码语言:javascript
复制
   $session->save():
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65679154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档