首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django TestCase检查ValidationError和assertRaises在抛ValidationError中

Django TestCase检查ValidationError和assertRaises在抛ValidationError中
EN

Stack Overflow用户
提问于 2022-08-01 04:27:31
回答 1查看 48关注 0票数 0

我有一个模型,在该模型中,我重写了保存函数,类似于:

代码语言:javascript
复制
class MyModel(models.Model):
  number = models.PositiveIngeter()
  def save(self,*args, **kwargs)
    if self.number > 10:
      super().save(*args, **kwargs)
    else:
      raise ValidationError('msg')

我正在测试的功能就像

代码语言:javascript
复制
def test_number(self):
  myModel = MyModel(number=5)
  self.assertRaises(ValidationError,myModel.save)

the error i got is like this:
ERROR: test_number(apps.players.tests.test_models.CityDetailTestCase)

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/sagar/project/apps/players/tests/test_models.py", line 740, in test_number
    self.asserttRaises(ValidationError,mumbai.save)
  File "/home/sagar/.pyenv/versions/3.5.9/lib/python3.5/unittest/case.py", line 733, in assertRaises
    return context.handle('assertRaises', args, kwargs)
  File "/home/sagar/.pyenv/versions/3.5.9/lib/python3.5/unittest/case.py", line 178, in handle
    callable_obj(*args, **kwargs)
  File "/home/sagar/.pyenv/versions/3.5.9/lib/python3.5/contextlib.py", line 30, in inner
    return func(*args, **kwds)
  File "/home/sagar/project/apps/players/models.py", line 2452, in save
    raise ValidationError("msg")
rest_framework.exceptions.ValidationError: ['msg']

我刚到Django,不知道这是怎么回事

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-01 05:15:27

不需要调用该方法,只需将其作为参数传递:

代码语言:javascript
复制
from django.test import TestCase

class MyModelTest(TestCase):
   def test_my_model(self):
      myModel = MyModel(number=5)
      self.asserRaises(ValidationError, myModel.save)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73188838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档