Python 不良资产

Python 不良资产,python,unit-testing,assertraises,Python,Unit Testing,Assertraises,我的课程和方法如下: class Calculator(object): def add(self, x, y): try: if not isinstance(x, int) or not isinstance(y, int): raise TypeError except TypeError: print "Parametr has wrong type"

我的课程和方法如下:

class Calculator(object):

    def add(self, x, y):
        try:
            if not isinstance(x, int) or not isinstance(y, int):
                raise TypeError
        except TypeError:
            print "Parametr has wrong type"
        else:
            return x + y
我想写一个单元测试来检查给定的参数是否是正确的类型。当你打字时会生气,抛出一个打字错误

import unittest
from Calculator import Calculator

class TDD_in_python_example(unittest.TestCase):
    def test_add_correct(self):
        calc = Calculator()
        result = calc.add(2, 3)
        self.assertEqual(5, result)

    def test_when_type_is_ok(self):
        calc = Calculator()
        result = calc.add(2, 3)
        self.assertRaises(TypeError, result, 2, 3)

    def test_when_type_of_parameter_is_wrong(self):
        calc = Calculator()
        result = calc.add(2, 3)
        self.assertRaises(TypeError, result, "two", "three")

    def test_when_one_type_of_parameter_is_wrong(self):
        calc = Calculator()
        result = calc.add(2, 3)
        self.assertRaises(TypeError, result, 2, "three")

    def test_when_two_type_of_parameter_is_wrong(self):
        calc = Calculator()
        result = calc.add(2, 3)
        self.assertRaises(TypeError, result, 'two', 3)
当给出正确类型的测试参数时,应显示错误,而不是错误。为什么?
请提供帮助/一些提示

我看到一些问题-[a]您正在捕获异常,然后打印错误-您需要引发错误[b]您正在将函数结果传递给assertRaises,您需要传递方法本身:
AsserRases(异常,方法名称,arg1,arg2)
除了上述注释之外。如果在末尾没有运行此类的语句(如果name==“main”:unittest.main())。该类仅被加载,而不是实际执行。我假设你已经发布了所有的代码。@BurhanKhalid谢谢你,我认为现在很好。测试失败,未引发AssertionError:TypeError