Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
0f05cea0
Kaydet (Commit)
0f05cea0
authored
Mar 24, 2015
tarafından
Ezio Melotti
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Sade Fark
#11468: merge with 3.4.
üst
f329878e
2e3998fa
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
37 deletions
+29
-37
unittest.rst
Doc/library/unittest.rst
+28
-37
ACKS
Misc/ACKS
+1
-0
No files found.
Doc/library/unittest.rst
Dosyayı görüntüle @
0f05cea0
...
...
@@ -80,37 +80,29 @@ The :mod:`unittest` module provides a rich set of tools for constructing and
running tests. This section demonstrates that a small subset of the tools
suffice to meet the needs of most users.
Here is a short script to test three
functions from the :mod:`random` module
::
Here is a short script to test three
string methods
::
import random
import unittest
class TestSequenceFunctions(unittest.TestCase):
import unittest
def setUp(self):
self.seq = list(range(10))
class TestStringMethods(unittest.TestCase):
def test_shuffle(self):
# make sure the shuffled sequence does not lose any elements
random.shuffle(self.seq)
self.seq.sort()
self.assertEqual(self.seq, list(range(10)))
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
# should raise an exception for an immutable sequence
self.assertRaises(TypeError, random.shuffle, (1,2,3))
def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())
def test_choice(self):
element = random.choice(self.seq)
self.assertTrue(element in self.seq)
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
def test_sample(self):
with self.assertRaises(ValueError):
random.sample(self.seq, 20)
for element in random.sample(self.seq, 5):
self.assertTrue(element in self.seq)
if __name__ == '__main__':
unittest.main()
if __name__ == '__main__':
unittest.main()
A testcase is created by subclassing :class:`unittest.TestCase`. The three
individual tests are defined with methods whose names start with the letters
...
...
@@ -118,16 +110,15 @@ individual tests are defined with methods whose names start with the letters
represent tests.
The crux of each test is a call to :meth:`~TestCase.assertEqual` to check for an
expected result; :meth:`~TestCase.assertTrue` to verify a condition; or
:meth:`~TestCase.assertRaises` to verify that an expected exception gets raised.
These methods are used instead of the :keyword:`assert` statement so the test
runner can accumulate all test results and produce a report.
expected result; :meth:`~TestCase.assertTrue` or :meth:`~TestCase.assertFalse`
to verify a condition; or :meth:`~TestCase.assertRaises` to verify that a
specific exception gets raised. These methods are used instead of the
:keyword:`assert` statement so the test runner can accumulate all test results
and produce a report.
When a :meth:`~TestCase.setUp` method is defined, the test runner will run that
method prior to each test. Likewise, if a :meth:`~TestCase.tearDown` method is
defined, the test runner will invoke that method after each test. In the
example, :meth:`~TestCase.setUp` was used to create a fresh sequence for each
test.
The :meth:`~TestCase.setUp` and :meth:`~TestCase.tearDown` methods allow you
to define instructions that will be executed before and after each test method.
They are covered in more details in the section :ref:`organizing-tests`.
The final block shows a simple way to run the tests. :func:`unittest.main`
provides a command-line interface to the test script. When run from the command
...
...
@@ -142,12 +133,12 @@ line, the above script produces an output that looks like this::
Passing the ``-v`` option to your test script will instruct :func:`unittest.main`
to enable a higher level of verbosity, and produce the following output::
test_
choice (__main__.TestSequenceFunction
s) ... ok
test_s
ample (__main__.TestSequenceFunction
s) ... ok
test_
shuffle (__main__.TestSequenceFunction
s) ... ok
test_
isupper (__main__.TestStringMethod
s) ... ok
test_s
plit (__main__.TestStringMethod
s) ... ok
test_
upper (__main__.TestStringMethod
s) ... ok
----------------------------------------------------------------------
Ran 3 tests in 0.
110
s
Ran 3 tests in 0.
001
s
OK
...
...
Misc/ACKS
Dosyayı görüntüle @
0f05cea0
...
...
@@ -1103,6 +1103,7 @@ Claudiu Popa
John Popplewell
Davin Potts
Guillaume Pratte
Florian Preinstorfer
Amrit Prem
Paul Prescod
Donovan Preston
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment