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