Python Django测试:之间的区别是什么;使用self.assertRaises()…”;而简单地说:";自评资产提高”;
您能帮助我理解Django测试(Python 3.7)中这两种语法之间的区别吗 以及: 第一个成功了,测试通过了。但第二个问题提出: models.OrderItem.DoesNotExist:OrderItem匹配查询不存在 它是否以某种方式复制了try/catch块的行为?Python Django测试:之间的区别是什么;使用self.assertRaises()…”;而简单地说:";自评资产提高”;,python,django,django-testing,Python,Django,Django Testing,您能帮助我理解Django测试(Python 3.7)中这两种语法之间的区别吗 以及: 第一个成功了,测试通过了。但第二个问题提出: models.OrderItem.DoesNotExist:OrderItem匹配查询不存在 它是否以某种方式复制了try/catch块的行为? 多谢各位 第一个将捕获作为上下文管理器执行时引发的异常。 在第二种情况下,没有任何东西能够捕获异常 这被称为ContextManager。使用with语句时,将在with块的末尾调用一个_exit__)方法,该方法包含执
多谢各位 第一个将捕获作为上下文管理器执行时引发的异常。 在第二种情况下,没有任何东西能够捕获异常 这被称为ContextManager。使用with语句时,将在with块的末尾调用一个_exit__)方法,该方法包含执行该块期间引发的任何异常 当直接调用assertRaises时,不会调用此_exit _方法,因此不会捕获异常 您将在此处找到有关此的更多信息:
def test_updateItem_deletion(self):
# some logic in here
with self.assertRaises(OrderItem.DoesNotExist):
OrderItem.objects.get(id=self.product_1.id)
# all the same, but self.assertRaises not wrapped in 'with'
self.assertRaises(OrderItem.DoesNotExist, OrderItem.objects.get(id=self.product_1.id))