[clug] PSIG last night

Alex Satrapa grail at goldweb.com.au
Sun Nov 16 22:18:19 GMT 2008


On 15/11/2008, at 10:12 , Michael Cohen wrote:

> I also think its important for a unit test to start with a blank
> slate, and reach the tested condition.

The Python and Django unit testing frameworks do this. Setup and  
teardown functions are run for each unit test.

> Also important is to manage a set of test data - this is the most
> important because you dont want anything too big, or that setup phase
> will take too long, but you want something fairly representative of
> real data.

It's also important to remember that once you have test data that is  
valid, you never get rid of it. As your application evolves, you're  
going to come across cases where data exists in production databases  
which is no longer valid according to your new rules.

Either you massage the data to be "valid" by your new rules, or you  
massage the rules to allow the old "invalid" data. Python and Django  
provide for fixtures to be loaded from YAML or JSON. Sample data  
should be kept in the source code repository along with your code. Any  
change to the schema should include any data massaging routines (for  
the actual migration), along with additional fixtures to provide new  
sample data for the "currently valid" ruleset.

Eternal vigilance is required when dealing with data structures/ 
relationship rules that change over time.

Alex



More information about the linux mailing list