私はこのようなコードを持っています:
def extract(data):
if len(data) == 3:
a = 3
else:
component = data.split("-")
if len(component) == 3:
a,b,c = component
else:
raise globals.myException("data1", "Incorrect format", data)
return a,b,c
これは単純化されたものです。例外クラス globals.myException をモックしたい。私はそれをやっています:
def test_extract_data_throws_exception(self):
with patch('globals.myException') as mock:
mock.__init__("data1", "Incorrect format", "")
with self.assertRaises(myException):
self.assertEqual(extract(""), (""))
そして、私はいつもエラーを受け取ります:
編集:@Aaron Digullaが示唆しているように、モンキーパッチは正しい解決策です。他の人を助けるために解決策を投稿します。
def test_extract_data_throws_exception(self):
#monkey patching
class ReplaceClass(myException):
def __init__(self, module, message, detail = u''):
pass
globals.myException = ReplaceClass
with self.assertRaises(myException:
self.assertEqual(extract(""), (""))