Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3.6] bpo-19950: Clarify unittest TestCase instance use. (GH-6875) #6939

Merged
merged 1 commit into from May 19, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
24 changes: 15 additions & 9 deletions Doc/library/unittest.rst
Expand Up @@ -342,8 +342,9 @@ testing code::

Note that in order to test something, we use one of the :meth:`assert\*`
methods provided by the :class:`TestCase` base class. If the test fails, an
exception will be raised, and :mod:`unittest` will identify the test case as a
:dfn:`failure`. Any other exceptions will be treated as :dfn:`errors`.
exception will be raised with an explanatory message, and :mod:`unittest`
will identify the test case as a :dfn:`failure`. Any other exceptions will be
treated as :dfn:`errors`.

Tests can be numerous, and their set-up can be repetitive. Luckily, we
can factor out set-up code by implementing a method called
Expand Down Expand Up @@ -389,13 +390,18 @@ after the test method has been run::
If :meth:`~TestCase.setUp` succeeded, :meth:`~TestCase.tearDown` will be
run whether the test method succeeded or not.

Such a working environment for the testing code is called a :dfn:`fixture`.

Test case instances are grouped together according to the features they test.
:mod:`unittest` provides a mechanism for this: the :dfn:`test suite`,
represented by :mod:`unittest`'s :class:`TestSuite` class. In most cases,
calling :func:`unittest.main` will do the right thing and collect all the
module's test cases for you, and then execute them.
Such a working environment for the testing code is called a
:dfn:`test fixture`. A new TestCase instance is created as a unique
test fixture used to execute each individual test method. Thus
`~TestCase.setUp`, `~TestCase.tearDown`, and `~TestCase.__init__`
will be called once per test.

It is recommended that you use TestCase implementations to group tests together
according to the features they test. :mod:`unittest` provides a mechanism for
this: the :dfn:`test suite`, represented by :mod:`unittest`'s
:class:`TestSuite` class. In most cases, calling :func:`unittest.main` will do
the right thing and collect all the module's test cases for you and execute
them.

However, should you want to customize the building of your test suite,
you can do it yourself::
Expand Down