Exemple #1
0
class CalculatorTest(unittest.TestCase):
    def setUp(self):
        self.calc = Calculator()

    def test_calculator_add_method_returns_correct_result(self):
        result = self.calc.add(2, 2)
        self.assertEqual(4, result)

    def test_calculator_add_method_raise_error_on_wrong_input(self):
        self.assertRaises(ValueError, self.calc.add, 'two', 'three')
        self.assertRaises(ValueError, self.calc.add, 1, 'a')

    def test_calculator_subtract_method_returns_correct_result(self):
        result = self.calc.subtract(4, 1)
        self.assertEqual(3, result)

    def test_calculator_subtract_method_raise_error_on_wrong_input(self):
        self.assertRaises(ValueError, self.calc.subtract, 'two', 'three')
        self.assertRaises(ValueError, self.calc.subtract, 1, 'a')

    def test_calculator_multiply_method_returns_correct_result(self):
        result = self.calc.multiply(3, 4)
        self.assertEqual(12, result)

    def test_calculator_multiply_method_raise_error_on_wrong_input(self):
        self.assertRaises(ValueError, self.calc.multiply, 'two', 'three')
        self.assertRaises(ValueError, self.calc.multiply, 1, 'a')

    def test_calculator_divide_method_returns_correct_result(self):
        result = self.calc.divide(15, 5)
        self.assertEqual(3, result)

    def test_calculator_divide_method_raise_error_on_wrong_input(self):
        self.assertRaises(ValueError, self.calc.divide, 'two', 'three')
        self.assertRaises(ValueError, self.calc.divide, 1, 'a')

    def test_calculator_divide_method_raise_error_on_divide_by_zero(self):
        self.assertRaises(ZeroDivisionError, self.calc.divide, 16, 0)

    def test_calculator_power_method_returns_correct_result(self):
        result = self.calc.power(5, 3)
        self.assertEqual(125, result)

    def test_calculator_power_method_raise_error_on_wrong_input(self):
        self.assertRaises(ValueError, self.calc.power, 'two', 'three')
        self.assertRaises(ValueError, self.calc.power, 1, 'a')

    def test_calculator_root_method_returns_correct_result(self):
        result = self.calc.root(16, 2)
        self.assertEqual(4, result)
        result = self.calc.root(8, 3)
        self.assertEqual(2, result)

    def test_calculator_root_method_raise_error_on_wrong_input(self):
        self.assertRaises(ValueError, self.calc.root, 'two', 'three')
        self.assertRaises(ValueError, self.calc.root, 1, 'a')