问题描述
我想测试是否引发了异常,我该怎么做?
//file.py
def unlink(self):
for rec in self:
if rec.state in ('progress','done'):
raise ValidationError(_('Error!!))
return super(MyClass,self).unlink()
//test_file.py
my_obj.button_validate()
my_obj.unlink()
在函数中添加:my_obj.unlink()时, 我在日志中得到这样的输出:
raise ValidationError(_('Error!!'))
odoo.exceptions.ValidationError: Error!!
解决方法
这个问题可能是重复的,考虑一下 Moe 带来的解决方案here:
使用 TestCase.assertRaises(或 TestCase.failUnlessRaises)来自 unittest 模块,例如:
import mymod
class MyTestCase(unittest.TestCase):
def test1(self):
self.assertRaises(SomeCoolException,mymod.myfunc)