[MOBY-dev] CommonSubs.pm: complexResponse
Pieter Neerincx
Pieter.Neerincx at wur.nl
Tue Nov 22 13:50:41 UTC 2005
On 22-Nov-2005, at 2:01 PM, Mark Wilkinson wrote:
> I just changed the code on my own t/* to use environment variables
> while I was on the plane yesterday so that I could run tests on my
> own Windows installation - funny that we were all looking at the
> same piece of code at the same time :-)
>
> i'll commit these changes as soon as I have double-checked them.
> In general it will allow you to test your local registry instead of
> the remote one by default.
That's cool! I'm looking forward to test the tests :)
Pieter
>
> M
>
>
>
> Frank Gibbons wrote:
>
>> Congratulations, Pieter,
>>
>> At 08:32 AM 11/21/2005, you wrote:
>>
>>> One more thing. After my changes I tried make test and noticed that
>>> the Config.t is skipped, because it's only required for a local
>>> BioMOBY Central..., but I do have one and I have set my
>>> MOBY_CENTRAL_CONFIG env var. I looked at the code, but are not very
>>> familiar with the test scripts...
>>
>>
>> I think you just got yourself nominated to be caretaker of the
>> test t/Config.t. I don't have a local registry, so there was no
>> way for me to test its operation. Most users (I think) are in the
>> same position, so this test is skipped by default.
>>
>> For details on how to use the testing framework, you could look
>> at the Perl modules Test::Simple and Test:More. The basic idea is
>> that you execute some MOBY code for which you believe you know the
>> output. You compare actual output to expected output using the is
>> () function. It generates errors if the two don't match. You can
>> also check for correct failure using isnt(), which generates a
>> similar error. Examples might be:
>>
>> is(2+2, 4, "Can't do addition");' # Generates error with this
>> string showing up on output device
>> is(scalar @A, $#A + 1, "Scalar gives incorrect results");
>>
>> Generally, tests should be symbolic, rather than specific. This
>> leads to tests that are more easy to maintain over time: if an
>> array is built before it is tested, and if it's tested
>> symbolically, it should be possible to alter the array contents at
>> a later point, without breaking that test. Take a look in the
>> Client-Central.t for examples of this: a registration structure is
>> created, services are registered, then the registration object is
>> itself queried, and the results compared symbolically with the
>> original data. This verifies that the information flows through
>> the system correctly. If someone later decides to change a small
>> detail (e.g., a parameter name), the tests should continue to pass
>> without modification.
>>
>> But the tests themselves don't really have to complicated to be
>> useful: check that each module exports the functions it claims to
>> implement, check that set/get methods work correctly, check return
>> types in all contexts (does it return array in list context,
>> scalar in scalar context). All that stuff is important in
>> maintaining a coherent interface over time. It also helps to find
>> inconsistencies.
>>
>> I think it would be really great if you could build some useful,
>> robust, portable tests for the local-registry configuration. This
>> kind of test can be a big help to users trying to install their
>> local registry, so its utility goes beyond merely regression
>> testing the code, it's also useful to debugging local
>> installations with perfectly functioning code.
>>
>> -Frank
>>
>> PhD, Computational Biologist,
>> Harvard Medical School BCMP/SGM-322, 250 Longwood Ave, Boston MA
>> 02115, USA.
>> Tel: 617-432-3555 Fax: 617-432-3557 http://
>> llama.med.harvard.edu/~fgibbons
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at biomoby.org
>> http://www.biomoby.org/mailman/listinfo/moby-dev
>>
>>
>
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: 0317-483 060
fax: 0317-483 584
mobile: 06-143 66 783
pieter.neerincx at wur.nl
More information about the MOBY-dev
mailing list