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 :
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 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.03.2007 Ostrzeżenie: (0%)
|
Dokładnie rozumiem ze OOP to interfejsy i ze klient widzi tylko publiczny interfejs. Chodziło mi po prostu o unikniecie pośredniego testowania i możliwość utworzenia w teście bezpośredniego testowania metod protected lub private (nie chce tutaj skłamać i konfabulować ale gdzieś mi się obiło o oczy takie możliwości np w Junicie czyli fremeworku testowym dla javy, ale tutaj mogę się głęboko mylić więc mnie skorygujcie).
Bardzo podoba mi się jednak koncepcja testowania pośredniego i tak skonstruowania metody testowej aby sprawdzała ona od razu metodę prywatną lub chronioną. Niekiedy jednak przydałaby by się możliwość za pomocą chociażby Reflection API sięgnięcia do metod chronionych i przetestowania jej bezpośrednio (bez zmian interfejsu klasy). Moje pytanie poniekad nasunelo mi sie tez w wyniku testpwania Reflection API, ktore umozliwia dostep do metod statycznych (private, protected, public) i zwrot z nich wartosci. Natomiast juz nie umozliwia dostepu do niestatycznych metod. Newiem dlaczego tak jest bo jeszcze tego nie odnalazlem w dokumentacji, ale z grubsza wydaja mi sie to troche niekonsekwentne Przyklad ponizej:
Pozdrawiam |
|
|
|
mikowski Testowanie 28.11.2008, 11:15:22
wookieb Dopisujesz publiczna metodę testową... 28.11.2008, 11:16:42
mike Metod chronionych i prywatnych nie testuje się bez... 28.11.2008, 11:23:39
dr_bonzo Jak wyzej. Testujesz tylko metody publiczne, innyc... 28.11.2008, 13:32:18 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 15:05 |