[python-nl] Vervuiling code coverage report

Remco Wendt remco at maykinmedia.nl
Tue Nov 9 22:31:40 CET 2010


2010/11/9 Wichert Akkerman <wichert at wiggy.net>

> On 2010-11-9 14:41, Gerard @ Gmail wrote:
>
>> Hi All,
>>
>> Ik loop tegen een aspect aan tijdens het schrijven van testcode en ik
>> vroeg me af hoe jullie daar mee om gaan.
>>
>> Ik heb een behoorlijk uitgebreide test suite opgezet om mijn Django
>> project in goede banen te lijden (houden).
>>
>> Als ik een bepaalde view(method) test waarin functies aangeroepen worden
>> dan zijn die functies volgens mijn coverage report wel gebruikt maar dus
>> niet expliciet getest.
>>
>
Hmmm ik zou je niet blind staren op coverage reports, er zijn genoeg
manieren om aan te tonen dat die metric niet alles zegt. Wat ik hier wel zie
is dat je voornamelijk op iets hoger niveau aan het testen bent. Met
ontwikkelen en het gebruik van testing is het vaak juist fijn om de
onderdelen van je code die je aanroept in je view functie ook apart te
testen. Dat zijn dan de units die je unittest, zoals dat dan heet. Je view
code test je waarschijnlijk middels gebruik van de django test client en dat
is meer op hoger functioneel niveau.

Ik zou dus zelf altijd bij het ontwikkelen de functies die je aanroept apart
testen. Dat is dan het stabiele fundament waar je op verder bouwt. Als je
bezig bent met coverage ga je waarschijnlijk ook kijken naar branching
binnen je code, dus het aftesten van alle mogelijke paden langs
if-statements ed. Als je voor een view statement op hoger niveau al die
combo's moet aftesten die je, in de functies die je aanroept, tegenkomt. Dan
ben je nogal even bezig. Beter kan je dan die mogelijkheden allemaal
aftesten in je unit test per unit. En dan als dat allemaal werkt de
combinatie daarvan aftesten middels zo'n meer functionele test, waarin je
dan niet tracht uitputtend te zijn.

Remco
-- 
Maykin Media
Herengracht 416, 1017 BZ Amsterdam
tel.: +31 (0)20 753 05 23
mob.: +31 (0)6 187 967 06
http://www.maykinmedia.nl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-nl/attachments/20101109/8b9e2862/attachment.html>


More information about the Python-nl mailing list