最简洁的方法来创建一个模拟/存根FilterUserResponseEvent实例?

时间:2016-08-12 20:44:03

标签: php symfony phpunit

我正在使用Symfony编写一个php网站。

我正在编写一个侦听FilterUserResponseEvent对象的模块。

我想创建一个模拟FilterUserResponseEvent对象,它将包含一个合适的请求对象,其中包含我可以设置的cookie。

即。我想制作一个合适的$event变量来传递给下面的函数。我希望能够在我的测试中预先定义$value = $request->cookies->get('cookie');的结果。

use FOS\UserBundle\Event\FilterUserResponseEvent;

public function onRegistrationCompleted(FilterUserResponseEvent $event)
{

    $response = $event->getResponse();
    $request  = $event->getRequest();

    // get cookie
    $value = $request->cookies->get('cookie');

}

我怎么能这样做?我正在尝试以下代码

   $request = new stdClass();      
   $request->cookies = new stdClass();
   $request->cookies->get = function($key){
       return 'cookie';
   };

   print(  $request->cookies->get('asd'));

但它给了我这个错误:

Error: Call to undefined method stdClass::get()

1 个答案:

答案 0 :(得分:1)

我认为最好只使用Http-Foundation组件中的#include <iostream> #include <algorithm> #include <math.h> #include <fstream> #include <stdio.h> #include <limits.h> #include <string.h> #include <iomanip> #include <set> #include <vector> #include <map> using namespace std; void popularMatriz(int iTamano, vector<vector<int>> *matriz){ for(int iA=0; iA<iTamano; iA++){ for(int iB=0; iB>iTamano; iB++){ int iNum; scanf("%d", &iNum ); matriz[iA][iB]=iNum; } } } int main(){ int iTamano; scanf("%d", &iTamano); vector<vector<int>> matriz(iTamano, vector<int>(iTamano)); matriz[2][2]=5; popularMatriz(iTamano, &matriz); return 0; } Request类。

Cookie

<?php use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\ParameterBag; $request = new Request(); $request->cookies = new ParameterBag($your_cookies); 类不需要环境中的任何特定arg才能正常工作。另外正如您在Tests中看到的Http-Foundation,没有使用存根。