Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]debugowanie kontrolera Symfony w trakcie testów (phpunit w phpstorm) z Guzzle (REST).
Forum PHP.pl > Forum > Przedszkole
porzeczki
Debugując test debugger zatrzymuje się na breakpointach (w phpstorm) w klasie testującej (podklasy PHPUnit_Framework_TestCase), ale nie zatrzymuje się na breakpointach do akcji kontrolera Symfony którego testowane żądanie dotyczy, a wchodzi do tego kontrolera na pewno:

  1. //test - tu debugger się zatrzymuje
  2. $response = $this->client->post('/api/programmers', [
  3. 'body' => json_encode($data)
  4. ]);
  5.  
  6. $this->assertEquals(201, $response->getStatusCode());


  1. //kontroler - tu debugger NIE zatrzymuje się
  2. /**
  3.   * @Route("/api/programmers")
  4.   * @Method("POST")
  5.   */
  6. public function newAction(Request $request)
  7. {
  8. ...
  9. return new Response($json, 202, array(
  10. 'Content-Type' => 'application/json'
  11. ));

... bo kod odpowiedzi mam 202

Więc dlaczego nie zatrzymuje się na breakpoincie w kontrolerze?
nospor
Bo jak debugujesz test ktory wysyla zupelnie inne żądanie http to nei oczekuj ze debugger bedzie nagle debugowal tez oddzielny "serwer"
vokiel
Skoro mówisz o testach, to możesz tam mockować
Kod
$this->client
i wtedy debugowanie gładko do niego wejdzie. Do tego oddzielne testy samego klienta i masz przetestowane wszystko w dwóch krokach.
Pyton_000
A po co chcesz debugować testy?
porzeczki
Cytat(nospor @ 30.01.2018, 11:57:37 ) *
Bo jak debugujesz test ktory wysyla zupelnie inne żądanie http to nei oczekuj ze debugger bedzie nagle debugowal tez oddzielny "serwer"

Nie rozumiem. Test wysyła żądanie, które trafia do tego kontrolera.
"inne żądanie"? "oddzielny serwer"?

(A chcę debugować testy bo chcę debugować różne scenariusze.)
(Nie chcę mockować, nie robię testów jednostkowych)
nospor
Cytat
Nie rozumiem. Test wysyła żądanie, które trafia do tego kontrolera.
No a jak wysylasz to żądanie? Przez wewnetrzny mechanizm symfony czy moze jednak normalnie przez adres,np:
http://localhost/blab/blabla
? Bo z tego co widze to przez Guzzle czyli walisz normalnie kolejne żądanie, ktore ma sie nijak do aktualnie debugowanego
Pyton_000
Cytat(porzeczki @ 30.01.2018, 13:10:38 ) *
(A chcę debugować testy bo chcę debugować różne scenariusze.)


A wiesz że najpierw piszesz test który ma sprłić twój scenariusz a potem piszesz do tego kod?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.