Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Test Driven Development
NoiseMc
post 1.12.2007, 20:36:46
Post #1





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


Chcialbym poznac Wasze zdanie dotyczące Unit Testów.
Osobiście zabieram się do tego od jakiegoś czasu i trudno mi jest to ugryźc. Znam API SimpleTest ale problem leży w tym, że nie wiem co i jak testowac, szczególnie klasy odpowiedzialne za zapis/odczyt danych ... co porównywac i z czym? Mock Objects ... kolejny temat zagadka.

Docelowo chciałbym dojśc do takiego poziomu aly każdy build aplikacji był zautomatyzowany z testami znaczy:
1. Export z SVN
2. Odpal testy
3. Jezeli wszytko ok to przekopiuj odpowiednie pliki do odpowiednich katalogow, poustawiaj prawa dostepu i zalinkuj katalog aplikacji do document_root serwera.

Piszcie co testujecie i jak ... przykladu kodu mile widziane smile.gif

Ten post edytował NoiseMc 1.12.2007, 20:37:06


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
NoiseMc
post 12.12.2007, 19:07:41
Post #2





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


Znalazlem cos ciekawego, przyklad testowania kontrolerow ZF:
http://www.alexatnet.com/node/12

Teraz mam pare pytan dotyczacych testowania warstwy modelu.
Zalozmy, ze mamy klasy, ktore nazwe umownie ProductDO i ProductDAO. ProductDO nie musi byc testowana bo jest tylko obiektem przechowywujacym dane. ProductDAO ma nastepujace metody:
  1. <?php
  2. public function getAll ()
  3. {
  4. /* Pobieranie danych i tworzenie listy obiektow ProductDO */
  5. return $productList;
  6. }
  7.  
  8. public function getByID ($id)
  9. {
  10. /* Zwraca jeden obiekt ProductDO */
  11. return $product;
  12. }
  13.  
  14. public function save (ProductDO $product)
  15. {
  16. /* Zapisuje obiekt */
  17. }
  18. ?>


Jak to teraz przetestowac?

W przypadku getByID() myslalem o sprawdzaniu czy zwraca obiekt typu ProductDO czyli:
  1. <?php
  2. public function testGetByID()
  3. {
  4. $this->assertTrue ($this->productDao->getByID (1) instanceof ProductDO);
  5. }
  6. ?>


ale co jezeli nie mam w bazie zadnych danych .... a moze zamiast testowac w ten sposob powinienem najpierw dodac obiekt do bazy co zwroci mi jego id (last_insert_id), a potem sprawdzic czy getByID zwroci mi obiekt klasy ProductDO.

Ten post edytował NoiseMc 12.12.2007, 22:18:49


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 15:28