我有以下测试代码片段
with self.assertRaises(models.NotEnoughInventorySpace):
self.inv2.add_item(self.item2, 1)
测试失败:
Creating test database for alias 'default'...
E.
======================================================================
ERROR: test_limited_inventory (wotw_project.game.tests.TestInventory)
----------------------------------------------------------------------
Traceback (most recent call last):
File "D:\...\wotw\wotw_project\..\wotw_project\game\tests.py", line 34, in test_limited_inventory
self.inv2.add_item(self.item2, 1)
File "D:\...\wotw\wotw_project\..\wotw_project\game\models.py", line 460, in add_item
raise NotEnoughInventorySpace(self)
NotEnoughInventorySpace: There is not enough space in the inventory 'Inventory: 2'
----------------------------------------------------------------------
Ran 2 tests in 0.015s
FAILED (errors=1)
Destroying test database for alias 'default'...
Finished "D:\...\wotw\wotw_project\manage.py test game" execution.
我不明白为什么引发的异常与我传入的异常不同assertRaises
manage.py test game
我使用with运行代码,使用tests.py
我的文件旁边的models.py
文件wotw_project.game
。
我对这个问题的研究表明,导入可能存在问题(即主文件与导入的同一文件不同)。但是我使用标准方法来运行单元测试,所以我不明白为什么这对我来说是个问题,当然其他人已经在 Django 中使用了 assertRaises!