Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Testowanie, Testowanie - dostep do metod prywatncyh i chronionych
mikowski
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 7.03.2007

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


Witam,
Aktualnie zajmuje się testowaniem pewnej klasy i natknąłem się przy tym na pewien problem. A mianowicie jak przetestować metody "private" i "protected".
Z metodami "protected" jest mniejszy problem gdyż jest możliwość utworzenia klasy pochodnej i upublicznienia interfejsu klasy bazowej do testów, czyli :

  1. <?php
  2. class Example {
  3.    protected function methodTest() {
  4.        return false;
  5.    }
  6. }
  7.  
  8. class ExampleExtension extends Example {
  9.    
  10.    public function methodTest() {
  11.        return parent::methodTest();        
  12.    }
  13. }
  14.  
  15. class ExampleTestCase extends PHPUnit_Framework_TestCase {
  16.    protected $_exaple = null;
  17.    
  18.    protected function setUp()
  19.    {      
  20.        $this->_exaple = new ExampleExtension();
  21.        
  22.        parent::setUp();
  23.    }
  24.    
  25.    protected function tearDown()
  26.    {
  27.        $this->_exaple = null;
  28.        
  29.        parent::tearDown ();
  30.    }
  31.    
  32.    public function testMethodTestIsFalse() {
  33.        $this->assertFalse($this->_exaple->methodTest());
  34.    }
  35. }
  36. ?>


Nie ma wiec problemu. A co w przypadku gdy chcemy testować metodę "private". (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Próbowałem dostać się do składowych poprzez Reflection API, ale niestety i ono ma ograniczone pole działania :/ konstrukcje z getClosure() działają tylko z metodami statycznymi.
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Metod chronionych i prywatnych nie testuje się bezpośrednio.
Musisz napisać taki test metod publicznych, który zapewni przetestowanie również metoch niepublicznych.

Pokrycie kodu testami musi byc jak największe.
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 - 23:43