[TYPO3-dev] Unit tests and method visibility

Bastian Waidelich bastian at typo3.org
Thu Jul 9 17:35:37 CEST 2009


Francois Suter wrote:

Hi Francois,

> I have read in the meantime that protected and private method should not 
> normally be tested as they represent inner workings of the class.

That is somewhat true because refactoring will become very costly if you 
test too much of the inner workings (as you'd have to adopt lots of test 
cases).

You don't want to test _how_ a class works internally, but you want to 
make sure it's API behaves as expected.

The problem: With TYPO3 and other frameworks protected methods are 
_part_ of the API in most cases and you want to test them too.

Luckily Robert has created a really adjuvant helper and Jochen 
backported it to Extbase: buildAccessibleProxy().
See 
https://svn.typo3.org/TYPO3v4/CoreProjects/MVC/extbase/trunk/Tests/Base_testcase.php

It allows you to create a proxy object for your class enabling you to 
call protected (not private) methods and to set/get protected properties.

Good luck and happy testing
Bastian




More information about the TYPO3-dev mailing list