私は以下のようなクラスとメソッドを持っています:
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
指定されたパラメーターが正しい型であるかどうかを確認する単体テストを作成したいと考えています。タイプすると怒られますので、TypeError を投げます。
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)
正しいタイプのテスト パラメータを指定すると、エラーが表示されるはずですが、そうではありません。なんで?助けて/ヒントをください