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.
--
http://mail.python.org/mailman/listinfo/python-list