On 06/27/2013 07:39 PM, Jim Mooney wrote:
On 27 June 2013 05:38, Steven D'Aprano <st...@pearwood.info> wrote:

Unit tests are great, but the learning curve is rather steep. I recommend that 
you start with doctests.

I tried a simple one and it worked, but a puzzlement. Does it Only
test what you've hard-coded?

Precisely. There's no way that it could test anything else, since it has no way of reading your mind to see what you intended.

That is, here is a simple test:

def doubler(inp):
     '''Return a doubled number or string
     >>> doubler(24)
     48
     >>> doubler('zark')
     'zarkzark'
     '''
     return inp * 2

This works on 24 or 'zark' as input when I run
C:\Python33\Jimprogs>python -m doctest
"C:/python33/jimprogs/docstringtest.py" --verbose'
and doctest prints:
48
zarkzark

And it fails if I put 'this doesn't work' as the return value of the function:

1 items had failures:
    2 of   2 in docstringtest.
***Test Failed*** 2 failures.

Although that doesn't tell me much.

But it also works on different input --> 189 and 'plantagenet,' to print:
378
plantagenetplantagenet

It's odd to me that it doesn't fail on what I haven't hardcoded.

I don't see how docstring could figure what I might be doing, so I
assume that although it returns anything valid, it Only tests on the
hardcoded values, 24 and 'zark'.  Is this correct? In which case it
seems like a lot of hard coding would be needed unless you tested only
endpoints or what might be problematic.

Or is it doing something more?


Nope. it is limited to the tests you write. And those tests are necessarily fairly simple. That's why there are other testing frameworks which support much more, with a much higher learning curve. But you'd be surprised how much code that's written that gets no useful repeatable testing at all. Or how much software that has tests which are seldom run before a release.

I've seen software released for which the source code didn't even exist, and couldn't readily exist... "Hack something together, just get it 'working'" That was when i was just transferring into a department, and it never happened again.


--
DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to