Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pytanie o testowanie jednostkowe oraz wstrzykiwanie zależności
mrWodoo
post
Post #1





Grupa: Zarejestrowani
Postów: 160
Pomógł: 6
Dołączył: 13.01.2012
Skąd: Bytom

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


Witam, mam dwa pytania gdyż natrafiłem na te pojęcia
- testowanie jednostkowe
- dependency injection

Jak ja to widzę
- testowanie jednostkowe - to po prostu sprawdzenie czy dany fragmentu kodu (klasy) działa, zwraca co należy i czy POTRZEBNE do tego są rzeczy takie jakie SimpleTest/PHPUnit czy mogę po prostu sprawdzać samemu co zwraca metoda np poprzez uzywania var_dumpa, i jak coś się nie zgadza bo zwróciło coś czego nie powinna to wtedy szukam błędu oraz teraz kwestia tworzenia porządnego kodu, który można testować, kod mam tworzyć tak, że można go testować samodzielnie, bez dokładania mu dziesiątek innych obiektów, może jakaś ciekawa stronka, która opisuje to porządnie (po angielsku może być)

- dependency injection - chodzi w tym o to, że żadna klasa nie tworzy sama w sobie nowych obiektów klas, tylko ma je przekazywane przez parametr lub sięgają po obiekty z 'kontenera' zalezności?

np

  1. $DI = new DI();
  2. $DI->db = new DB( $loginInformation );
  3.  
  4.  
  5. $application = new Application( $DI->db );
  6. lub ewentualnie w konstruktorze klasy Application robię
  7. $this->db = $DI->db; //$DI przekazuję w parametrze lub ew. robię z tego singletona z dostępem do instancji poprzez statyczną metodę getInstance


?


Przepraszam za wszystkie głupoty, które tutaj napisałem, ale na tym polega nauka
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mrWodoo
post
Post #2





Grupa: Zarejestrowani
Postów: 160
Pomógł: 6
Dołączył: 13.01.2012
Skąd: Bytom

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


Dzięki wielkie, poczytałem co napisano w tej dokumentacji SF i wnioski wysnułem takie, że DIC jest po to by operować na jednej INSTANCJI jakiejś klasy, czyli taka praktyka, by omijać metody statyczne np mając klasę do wysyłania wiadomości email, potrzebna nam tak naprawdę będzie tylko jedna instancja (by ominąć ciągłą konfigurację za każdym razem jak tworzymy obiekt tej klasy w innych klasach) co ułatwia sprawę globalizacji, gdyż jeśli chcemy zmienić dla przykładu użytkownika SMTP obrębie całej aplikacji, to nie musimy szukać wszystkich obiektów tego "mailera", często w aplikacjach widziałem klasę Application i tam były podefiniowane własności

class Application {
protected $db;
protected $mailer;
protected $input; //post i get
protected $costam;

//metody tworzące i gettery

}


Było to jak nazwa wskazuje, serce aplikacji i tam też były metody, które tworzyły instancję klas (db, mailer, input, costam [initializeDb, initializeMailer]), czy można takie coś nazwać DIC?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 29.12.2025 - 10:53