unit test strategy

Mark Lawrence breamoreboy at yahoo.co.uk
Sun Sep 16 08:28:17 EDT 2012


On 15/09/2012 03:59, Aaron Brady wrote:
> Hello,
>
> I've developing a test script.  There's a lot of repetition.  I want to introduce a strategy for approaching it, but I don't want the program to be discredited because of the test script.  Therefore, I'd like to know what people's reactions to and thoughts about it are.
>
> The first strategy I used created an iterator and advanced it between each step:
> 	self.op_chain(range(5), ('add', 5))
> 	self.op_chain(range(5), ('add', -2), ('add', -1))
> 	self.op_chain(range(5), ('discard', -1), ('add', 5))
> 	self.op_chain_ok(range(5), ('update', [0, 1]))
> Etc.
>
> I'm considering something more complicated.  'iN' creates iterator N, 'nN' advances iterator N, an exception calls 'assertRaises', and the rest are function calls.
> 	dsi= dict.__setitem__
> 	ddi= dict.__delitem__
> 	dsd= dict.setdefault
> 	KE= KeyError
> 	IE= IterationError
> 	self.chain(range(10), 'i0', (dsi, 0, 1), 'n0', (dsi, 10, 1), (IE, 'n0'))
> 	self.chain(range(10), 'i0', 'n0', (dsd, 0, 0), 'n0', (dsd, 10, 1), (IE, 'n0'))
> 	self.chain(range(10), 'i0', (KE, ddi, 10), 'n0', (ddi, 9), (IE, 'n0'))
>
> Do you think the 2nd version is legible?  Could it interfere with the accuracy of the test?
>

http://docs.python.org/library/unittest.html#organizing-test-code seems 
to be a good starting point for avoiding repetition and introducing a 
strategy.

-- 
Cheers.

Mark Lawrence.




More information about the Python-list mailing list