Witam. Jak za symulować w testach wysyłanie request? chodzi mi o dane pola file jak zasymilować . Oraz także GET.
$client = http://www.php.net/static::createClient(); $client->request('GET', $url);
https://stackoverflow.com/questions/6916989/testing-file-uploads-in-symfony2
Niestety słabo. Nic nie chodzi.
próbuje tak :
$this->client = http://www.php.net/static::createClient(); $photo = http://www.php.net/array( 'data' => $this->_createUploadedFile() ); $this->client->request( 'POST', $this->client->getContainer()->get('router')->generate( 'edit_add', http://www.php.net/array('id_add' => '1') ), http://www.php.net/array('name' => 'Fabien'), http://www.php.net/array('photo' => $photo ) );
public function _createUploadedFile() { return new UploadedFile( 'C:\xampp\htdocs\heroku\my_project_test\web\images\1.jpg', 'photo.jpg', 'image/jpeg', null ); }
Chodzi chodzi tylo Ty źle załączyłeś plik. Mam wrażenie że nie wiesz co robisz. Zrobiłeś Copy&paste bez zrozumienie tego co się dzieje.
https://symfony.com/doc/current/testing.html#testing-request-method-sidebar zobacz jak wyglądają parametry metory request
No dobra z tym akurat nie ma problemu. Już sobie poradziłem . Tylko jak wysłać tego clienta ?
ponieważ gdy robię client->request to nie wysyłam tego.
Ponieważ próbuje to odebrać i niczego nie dostaje. Chyba, że coś źle robię.
No ale gdy próbuje użyć var_dump($_POST) aby odebrać dane to niczego nie mam tak jakby nigdzie nie wysłał tych informacji. Mam nadzieje, że dobrze to wyjaśniłem.
PO prostu :
$this->client = http://www.php.net/static::createClient(); $paramsArray = http://www.php.net/array(); $this->client->request( 'POST', $this->client->getContainer()->get('router')->generate( 'edit_add', http://www.php.net/array('id_add' => '1') ), $paramsArray, http://www.php.net/array( 'data' => $this->_createUploadedFile() ), http://www.php.net/array( 'Content-Type' => 'multipart/formdata' ) );
Pliki to raczej $_FILES
No tak zamuliłem się w akcji ale tak , czy siak nic nie działa. Po prostu tablica $_FILES jest pusta
Tak jak Python napisal masz zle podane parametry tablica z photo powinna byc o jedno miejsce wyzej
Zrobiłem tak i pełno błedów wyskakuje. Podniosłem o jedno miejsce wyżej:
$this->client = http://www.php.net/static::createClient(); // Any additional params $paramsArray = http://www.php.net/array(); $this->client->request( 'POST', $this->client->getContainer()->get('router')->generate( 'edit_add', http://www.php.net/array('id_add' => '1') ), http://www.php.net/array( 'data' => $this->_createUploadedFile() ), http://www.php.net/array( 'Content-Type' => 'multipart/formdata' ) );
Daj jako trzeci parametr pusta tablice.. a czwarty ma byc ten z photo... czytasz to co jest w dokumentacji ? Czy raczej to jest komiks dla Ciebie i przegladasz sobie obrazki ?☺
No czytam dokumentacje ale próbowałem z niej i się wkurzyłem i tak zacząłem ten wątek. Widocznie źle to zrozumiałem. NO wcześniej tak przecież miałem zrobione i podczas wysłania mam pustą tablicę. Praktycznie wróciłem do punktu wyjścia :-(
Wchodzi Ci w ogóle do tej akcji ? Przypisz ten request w testach caly do zmiennej i zrob na nim ->html() luub ->text i go pokaz
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)