Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHPUnit Mock
Turson
post
Post #1





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Mam klasę
  1. class Foo{
  2.  
  3. public function a(){
  4. return $this->b() || $this->c();
  5. }
  6.  
  7. protected function b(){
  8. return time()%2 === 0;
  9. }
  10.  
  11. protected function c(){
  12. return time()%3 === 0;
  13. }
  14.  
  15. }

czy możliwe jest przetestowanie a() poprzez zamockowanie b() oraz c()?
Typu:
mockuję b() że zwraca true i wtedy spodziewam się w a() assertTrue()
mockuję c() że zwraca true i wtedy spodziewam się w a() assertTrue()
mockuję b() oraz c() że zwracają false i spodziewam się w a() assertFalse()
mockuję b() oraz c() że zwracają true i spodziewam się w a() assertTrue()
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Czy mógłbyś opisać jaki masz konkretny przypadek? Wygląda to trochę tak jakbyś próbował od złej strony podejść do testów. Przede wszystkim jeżeli metody b() i c() są niepubliczne nie powinny być w ogóle ujmowane w testach - są szczegółem implementacyjnym.

Ten post edytował Crozin 21.12.2016, 14:44:33
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: 8.10.2025 - 06:07