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

Reply via email to