fix getting-started which claimed you need to avoid side effect in asserts

This commit is contained in:
holger krekel 2011-06-15 07:50:34 +02:00
parent 8772b8c928
commit 9ea58242d4
2 changed files with 9 additions and 16 deletions

View File

@ -129,9 +129,12 @@ See the :ref:`reporting demo <tbreportdemo>` for many more examples.
.. _assert-details:
.. _`assert introspection`:
Assertion introspection details
-------------------------------
Advanced assertion introspection
----------------------------------
.. versionadded:: 2.1
Reporting details about the failing assertion is achieved either by rewriting
assert statements before they are run or re-evaluating the assert expression and

View File

@ -61,20 +61,10 @@ py.test found the ``test_answer`` function by following :ref:`standard test disc
.. note::
You can simply use the ``assert`` statement for asserting
expectations because intermediate values will be presented to you.
This is arguably easier than learning all the `the JUnit legacy
methods`_.
However, there remains one caveat to using simple asserts: your
assertion expression should better be side-effect free. Because
after an assertion failed py.test will re-evaluate the expression
in order to present intermediate values. You will get a nice warning
and you can easily fix it: compute the value ahead of the assert and
then do the assertion. Or maybe just use the assert "explicit message"
syntax::
assert expr, "message" # show "message" if expr is not True
You can simply use the ``assert`` statement for asserting test
expectations. pytest's :ref:`assert introspection` will intelligently
report intermediate values of the assert expression freeing
you from the need to learn the many names of `JUnit legacy methods`_.
.. _`the JUnit legacy methods`: http://docs.python.org/library/unittest.html#test-cases