Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][PHPUnit] assertEquals a działanie skryptu
wpaski
post 19.11.2016, 18:57:21
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 6
Dołączył: 25.12.2011

Ostrzeżenie: (0%)
-----


Natknąłem się na taką sytuację podczas testu jednej klasy (to jest tylko przykład, pewnego wzorca), jest kod metody w klasie:

  1. public function connect()
  2. {
  3. $this->state = new ConnectionEstablished();
  4. $this->state->open();
  5.  
  6. return sprintf('Opening connection %s:%d', $this->getUri(), $this->getPort());
  7. }


jak widać w 3 linijce jest wywołanie klasy ConnectionEstablished

teraz mam test PHPUnit:

  1. $this->assertEquals('Opening connection mysql://user@pass:123', $dbConnection->connect());


i test jest OK - nie ma błędów, aczkolwiek nie rozumiem dlaczego, ponieważ normalnie gdybym wywołał w PHP kod:

  1. $this->state = new ConnectionEstablished();


to byłby błąd - ponieważ nie ma takiej klasy, dlaczego w tym przypadku test jest ukończony pomyślnie? Rozumiem, że metoda assertEquals sprawdza jedynie co zwraca dana funkcja ignorując to, że coś w niej może być nie tak? W takim wypadku jak się uchronić przed tego typu błędami?

Go to the top of the page
+Quote Post
matiit
post 19.11.2016, 19:35:39
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


Pewnie bootstrapujesz autoloader composerowy w phpunit.

I normalnie uzywa klasy
  1. ConnectionEstablished



Ustaw breakpointa, odpal i sie przekonaj.

Albo ustaw
  1. die('dupa');
w konstruktorze tej klasy
  1. ConnectionEstablished
i tez zobaczysz.

Nie rozumiem problemu.

Inna sprawa, ze prawdopodobnie powinienes swoja klasę uwolnić od bycia zależną od klasy
  1. ConnectionEstablished
Go to the top of the page
+Quote Post
wpaski
post 20.11.2016, 15:03:46
Post #3





Grupa: Zarejestrowani
Postów: 206
Pomógł: 6
Dołączył: 25.12.2011

Ostrzeżenie: (0%)
-----


dzięki, jest tak jak napisałeś
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.05.2024 - 14:30