### file name should start with => test_ <= or end with => _test <= ###
import unittest
class TestCalculator(unittest.TestCase):
@classmethod
def setUpClass(cls): ### run once before all test cases ###
pass
@classmethod
def tearDownClass(cls): ### run once after all test cases ###
pass
def setUp(self): ### run before each test case ###
pass
def tearDown(self): ### run after each test case ###
pass
### make sure to add => test_ <= as prefix to all test cases otherwise they won't work ###
def test_add(self):
'''Test case function for addition'''
self.calc = Calculator()
result = self.calc.add(4, 7)
expected = 11
self.assertEqual(result, expected)
def test_sub(self):
'''Test case function for subtraction'''
self.calc = Calculator()
result = self.calc.sub(10, 5)
expected = 5
self.assertEqual(result, expected)
@unittest.skip('Some reason')
def test_mul(self):
'''Test case function for multiplication'''
self.calc = Calculator()
result = self.calc.mul(3, 7)
expected = 21
self.assertEqual(result, expected)
def test_div(self):
'''Test case function for division'''
self.calc = Calculator()
result = self.calc.div(10, 2)
expected = 4
self.assertEqual(result, expected)
# discover tests recursively
python -m unittest discover -p 'test_*.py'
import unittest
class DefaultWidgetSizeTestCase(unittest.TestCase):
def test_default_widget_size(self):
widget = Widget('The widget')
self.assertEqual(widget.size(), (50, 50))