Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django单元测试中正确使用assertRaises?_Python_Django_Assert - Fatal编程技术网

Python 如何在Django单元测试中正确使用assertRaises?

Python 如何在Django单元测试中正确使用assertRaises?,python,django,assert,Python,Django,Assert,问题很简单:我不能在Django 1.5单元测试中使用self.assertRaises 我真的很想验证,当您尝试从不存在的数据库中删除提供程序时,是否会引发LookupError 如您所见,我有一个ProviderDAO类,在其中定义了如何删除提供程序。 然后,我只需在单元测试类ProviderManagerTests中调用这个方法delete_provider()。 我已经概述了代码中的所有可能性,现在我来这里是为了得到答案(我已经阅读了相关问题中的建议,但没有任何效果) 我正在使用pyth

问题很简单:我不能在Django 1.5单元测试中使用self.assertRaises

我真的很想验证,当您尝试从不存在的数据库中删除提供程序时,是否会引发LookupError

如您所见,我有一个ProviderDAO类,在其中定义了如何删除提供程序。 然后,我只需在单元测试类ProviderManagerTests中调用这个方法delete_provider()。 我已经概述了代码中的所有可能性,现在我来这里是为了得到答案(我已经阅读了相关问题中的建议,但没有任何效果) 我正在使用python 2.7.5 谢谢

和堆栈轨迹:

======================================================================
ERROR: test_delete_nonexistent_provider (edu.tests.ProviderTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/tests.py", line 68, in test_delete_nonexistent_provider
    provider_manager.delete_provider('398236503462063')
  File "/Users/models.py", line 92, in delete_provider
    raise LookupError('No deletion; no providers matching this id')
LookupError: No deletion; no providers matching this id

----------------------------------------------------------------------
Ran 14 tests in 0.306s

FAILED (errors=1)

顺便说一下,你可以这样写:

self.assertRaises(LookupError, provider_manager.delete_provider, '398236503462063')

你有另一个
provider\u管理器。在你的代码中删除
provider('398236503462063')
,它不在self.assertRaises(…)
block中。好吧,我觉得自己很笨。谢谢
self.assertRaises(LookupError, provider_manager.delete_provider, '398236503462063')