测试是否引发了错误信息ValidationError

2024-04-28 14:12:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想测试是否引发了异常我该怎么做?

在my models.py中,我有这个函数,我要测试的函数:

  def validate_percent(value):
    if not (value >= 0 and value <= 100):
      raise ValidationError('error')

在我的tests.py中,我尝试了:

def test_validate_percent(self):
    self.assertRaises(ValidationError, validate_percent(1000))

测试的输出是:

..E
======================================================================
ERROR: test_validate_percent (tm.tests.models.helpers.HelpersTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/...py", line 21, in test_validate_percent
    self.assertRaises(ValidationError, validate_percent(1000))
  File "/....py", line 25, in validate_percent
    raise ValidationError(u'error' % value)
ValidationError: ['error']

Tags: 函数pytestselfvaluemodelsdeftests
2条回答
def test_validate_percent(self):
    self.assertRaises(ValidationError, validate_percent, 1000)

assertRaises用作上下文管理器:

def test_validate_percent(self):
    with self.assertRaises(ValidationError):
        validate_percent(1000)

或者用一个可呼叫的:

def test_validate_percent(self):
    self.assertRaises(ValidationError, validate_percent, 1000)

相关问题 更多 >