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