python – 测试是否提出ValidationError

前端之家收集整理的这篇文章主要介绍了python – 测试是否提出ValidationError前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想测试一个异常是否被提出如何做到这一点?

在我的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']

解决方法

assertRaises用作上下文管理器:
def test_validate_percent(self):
    with self.assertRaises(ValidationError):
        validate_percent(1000)

或与可呼叫:

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

> http://docs.python.org/2/library/unittest.html#unittest.TestCase.assertRaises

原文链接:https://www.f2er.com/python/185690.html

猜你在找的Python相关文章