Re: Help me understand unit testing?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 21, 2009 at 7:24 PM, Murray <planetthoughtful@xxxxxxxxx> wrote:
> I think this is my problem -- basically to know how to get some benefit from
> it.
>
> If I have a function in a class that is supposed to return some rows, how
> would I go about performing a useful unit test on it? In theory (and in my
> current practice), I can simply dump the array or object, or step through
> the code with XDebug in Netbeans PHP (love this app!) to see what is taking
> place.
>
> Where would a unit test come into this process in a useful way? Is it
> because I can abstract the call to that function / class without having code
> that puts it to the page? Some other benefit?
>
> M is for Murray
>
>
> On Thu, Jan 22, 2009 at 10:13 AM, Eric Butera <eric.butera@xxxxxxxxx> wrote:
>>
>> On Wed, Jan 21, 2009 at 7:01 PM, Murray <planetthoughtful@xxxxxxxxx>
>> wrote:
>> > Hi All,
>> >
>> > I'd like to understand unit testing better (or, in fact, at all). I
>> > understand the broad idea that testing Is A Very Good Thing, but when I
>> > have
>> > tried to look into it further (for example, have just been looking
>> > through
>> > the PHPUnit site), I always end up thinking 'This looks like more
>> > trouble
>> > than it's worth.' I'm sure that's down to me and not the process of unit
>> > testing, but I'd like to get some idea of how people on the list
>> > actually
>> > use unit testing in the real world.
>> >
>> > I'm assuming that you have your actual application classes and functions
>> > designed in their own files, and then you build a series of unit testing
>> > classes / functions in their own sort of space, but do you build these
>> > in
>> > parallel to your application code, or during alpha / beta testing etc?
>> >
>> > Any practical or even theoretical advice welcome!
>> >
>> > Many thanks,
>> >
>> > M is for Murray
>> >
>>
>> Well this was a hard topic for me to grasp too.  A lot of times I
>> still get lazy about it, but I strive to do my best.  Unit testing
>> makes sure your code works as expected.  So if you're messing around
>> with stuff, keep re-running your test suite and see if your changes
>> break any of your tests.  This way you know whether or not your
>> changes are breaking the very apps that rely on your code.
>>
>> Unit testing also allows you to quickly assess problems with different
>> servers, php upgrades, whatever.
>>
>> Of course these are just little points.  Just give it a try and keep
>> going at it.  Once I started I noticed that I had been writing my code
>> all wrong.  Lots of weird dependencies, reliance on hard to recreate
>> state, stuff like that.  It helped me to start writing leaner methods
>> that targeted what they were supposed to do a lot better.
>>
>> There's a lot of info on this subject all across the net & in books.
>> It isn't just limited to php, but programming in general.
>>
>> V is for Vendetta?
>
>

Think of an ecommerce app.  You've got code that calculates price
based on lots of different factors.  Unit testing lets you make sure
that your prices will always add up correctly based on those factors.
Too many times have I messed something up and all of a sudden Michigan
tax isn't acting right.  Unit testing prevents those 4:50pm mistakes.
:D

Start small just testing the logic of your app.  Don't worry so much
about making sure a query has x data.  You can do something called
mock that out later on once you've got a better handle on things.

You might also look at established code and see their unit tests to
maybe get a better idea of how it is really useful.  Really tho

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux