Le 11/10/13 11:00 AM, Markus
Unterwaditzer a écrit :
While it is a nice idea, i don't think this feature deserves its
own syntax. Besides doctests, another way of achieving this in
Python might be:
yes, that's what we all already do: tests in test_xxx functions. And
the adopted convention
# implementation of sum
assert sum() == 0
assert sum([1, 2, 3]) == 6
which IMO is nice enough.
is to have the tests in dedicated tests modules, which defeats the
benefit of having
real isolated unit tests just by the function code.
And even if we place the test function just besides the tested
function, Python will not
make any distinction : they are both just functions.
Having the ability to distinguish tests and regular code at the
has benefits like the ability to ignore tests when you run the app
in production etc.
"Tarek Ziadé" <firstname.lastname@example.org>
I've read about Pyret on hackernews: http://www.pyret.org/
and found the 'where' statement very compeling. Functions can
end with a where that contains small unit
From the documentation example:
| empty => 0
| link(first, rest) => first + sum(rest)
sum() is 0
sum([1, 2, 3]) is 6
It's quite similar to the doctests ideas I guess - but not
intended to be documentation like them.
I ended up disliking docttests because of this doc+test
duality by the way: it often ends up as a
not so good documentation and not so good tests.
Anyways, having a dedicated keyword to append after a function
some tests as part of the language
has benefits imho:
- the scope is reduced to the function - so it helps making
'real' isolated unit tests.
- we do have the unittest conventions, but here it make tests
a first class citizen in the language.
Python-ideas mailing list