Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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测试:之间的区别是什么;使用self.assertRaises()…”;而简单地说:";自评资产提高”;_Python_Django_Django Testing - Fatal编程技术网

Python Django测试:之间的区别是什么;使用self.assertRaises()…”;而简单地说:";自评资产提高”;

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__)方法,该方法包含执

您能帮助我理解Django测试(Python 3.7)中这两种语法之间的区别吗

以及:

第一个成功了,测试通过了。但第二个问题提出:

models.OrderItem.DoesNotExist:OrderItem匹配查询不存在

它是否以某种方式复制了try/catch块的行为?
多谢各位

第一个将捕获作为上下文管理器执行时引发的异常。 在第二种情况下,没有任何东西能够捕获异常

这被称为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))