From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sat, 19 May 2018 00:55:45 +0000 (-0700) Subject: bpo-19950: Clarify unittest TestCase instance use. (GH-6875) (GH-6938) X-Git-Tag: v3.7.0b5~84 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=436972e295f5057fe7cdd7312f543c2fa884705d;p=python bpo-19950: Clarify unittest TestCase instance use. (GH-6875) (GH-6938) (cherry picked from commit dff46758f267ad6c13096c69c4e1dee17f9969aa) Co-authored-by: Gregory P. Smith Google --- diff --git a/Doc/library/unittest.rst b/Doc/library/unittest.rst index af71be40b8..086d937825 100644 --- a/Doc/library/unittest.rst +++ b/Doc/library/unittest.rst @@ -361,8 +361,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 @@ -408,13 +409,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::