Python Unit Test Automation



Download 1,71 Mb.
Pdf ko'rish
bet39/73
Sana31.12.2021
Hajmi1,71 Mb.
#213720
1   ...   35   36   37   38   39   40   41   42   ...   73
Bog'liq
2 5188215245394412341

Listing 3-20.  test_module14.py
import unittest
class Calculator:
        def add1(self, x, y):
                return x + y
        def add2(self, x, y):
                number_types = (int, float, complex)
                 if isinstance(x, number_types) and isinstance(y, number_
types):
                        return x + y
                else:
                        raise ValueError
calc = 0
class TestClass16(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
                global calc
                calc = Calculator()
        def setUp(self):
                print("\nIn setUp()...")
        def test_case01(self):
                self.assertEqual(calc.add1(2, 2), 4)
        def test_case02(self):
                self.assertEqual(calc.add2(2, 2), 4)
        def test_case03(self):
                self.assertRaises(ValueError, calc.add1, 2, 'two')
        def test_case04(self):
                self.assertRaises(ValueError, calc.add2, 2, 'two')


Chapter 3 

 Unittest
61
        def tearDown(self):
                print("\nIn tearDown()...")
        @classmethod
        def tearDownClass(cls):
                global calc
                del calc
In the code in Listing 3-20, we defined a class called Calculator that has two 
different methods for the addition operation. The add1() method does not have a 
provision to raise an exception if a non-numeric argument is passed to it. The add2() 
method raises a ValueError if any of the arguments are non-numeric. Here is the output 
of the code in Listing 
3-20
:
test_case01 (test_module14.TestClass16) ...
In setUp()...
In tearDown()...
ok
test_case02 (test_module14.TestClass16) ...
In setUp()...
In tearDown()...
ok
test_case03 (test_module14.TestClass16) ...
In setUp()...
In tearDown()...
ERROR
test_case04 (test_module14.TestClass16) ...
In setUp()...
In tearDown()...
ok
======================================================================
ERROR: test_case03 (test_module14.TestClass16)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "/home/pi/book/code/chapter03/test/test_module14.py", line 37, in 
test_case03
    self.assertRaises(ValueError, calc.add1, 2, 'two')
  File "/usr/lib/python3.4/unittest/case.py", line 704, in assertRaises
    return context.handle('assertRaises', callableObj, args, kwargs)
  File "/usr/lib/python3.4/unittest/case.py", line 162, in handle
    callable_obj(*args, **kwargs)
  File "/home/pi/book/code/chapter03/test/test_module14.py", line 7, in add1
    return x + y


Chapter 3 

 Unittest
62
TypeError: unsupported operand type(s) for +: 'int' and 'str'
----------------------------------------------------------------------
Ran 4 tests in 0.030s
FAILED (errors=1)
In the output, the test_Case03() fails because add1() does not have a provision 
to raise an exception when you pass it a non-numeric argument (a string, in this case). 
assertRaises() is very useful in writing negative test cases, such as when you need to 
check the behavior of the API against invalid arguments.

Download 1,71 Mb.

Do'stlaringiz bilan baham:
1   ...   35   36   37   38   39   40   41   42   ...   73




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish