- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在条件引发自定义异常消息的函数内 assertRaise 异常。
功能:
if not Cart.objects.filter(member=member).count():
raise CartDoesNotExist("Cart Does Not Exist for Member: %s ( %id )." % (member.email,member.id))
现在,我能够成功地产生到达 raise 语句所需的条件。
所以,我的测试用例看起来像这样:
def Order_CartDoesNotExist(self):
self.assertRaises(CartDoesNotExist,Order.objects.create_order(member=self.member2,member_slot=self.memslot,order_type="Normal"))
当我运行测试时,输出是一个错误。它给出了相同的错误 CartDoesNotExist.....
所以我的问题是,如何引发此类异常?如何在我们的单元测试中涵盖这些情况?我不想逃避这些条件,因为它们很重要并且会增加代码覆盖率?
谢谢大家
最佳答案
您的代码直接调用了 create_order,这引发了异常。您需要更改它的调用方式。在 Python 2.7 中,你可以使用这个:
with self.assertRaises(CartDoesNotExist):
Order.objects.create_order(member=self.member2, member_slot=self.memslot, order_type="Normal"))
这里上下文管理器允许你直接调用你的代码,上下文管理器会为你处理异常。
如果您使用的是 2.6 或以下版本:
self.assertRaises(CartDoesNotExist, Order.objects.create_order, member=self.member2, member_slot=self.memslot, order_type="Normal")
在这里您没有调用您的函数,而是将它传递给 assertRaises,连同它需要的参数,assertRaises 将调用代码并正确处理异常。
关于python - 使用 assertRaise 测试异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371849/
是否可以将 assertRaises 用于多种类型的异常。就像是 assertRaises(RuntimeError, "error message") assertRaises(Exception,
我有一个小代码如下,请帮助我如何以正确的方式编写它。我想检查 ID 是否存在于 value 中,如果不存在则引发异常。 value = ({'av' : '123', 'user' : 'abc',
我正在为 unit test in Django 使用 assertRaises . 我要测试的示例方法: def example_method(var, optional_var=None):
以下问题是由this post中的讨论引发的. 假设有两个文件(foobar.py 和 foobar_unittest.py)。文件 foobar.py 包含一个具有两个函数(foo 和 bar)的类
我有这个脚本 import unittest,itertools,random ##testclass class Testcomb(unittest.TestCase): def test
assertRaises 使用以下代码给出断言错误。我做错了什么吗? class File_too_small(Exception): "Check file size" def foo(a,
说我有课 class myClass(object): pname = "" def __getName(self): return pname def __setNam
我从 python.org unittest 文档中逐字复制了这个: import random import unittest class TestSequenceFunctions(unittes
我正在尝试测试异常。 我有: def test_set_catch_status_exception(self): mro = self.mro NEW_STATUS = 'No su
当测试传递给它的无效文件的 ImageField 时,Django 断言不会引发ValidationError。这是在 with self.assertRaises 上下文中完成的。但是,当我访问 f
感谢您提前提供的帮助。 我正在尝试测试以下类方法: def _get_ldap_connection(self): """ Instantiate and return simplel
def test_invalid_host(self): controller = SSHController("host name") self.assertRaises(SSHEx
我正在为 python 项目创建测试。正常测试工作得很好,但是我想测试在某种情况下我的函数是否引发了自定义异常。因此我想使用 assertRaises(Exception, Function)。有什么
我想知道是否有办法做到以下几点: class Test_Vector_test(unittest.TestCase): def test_add(self): vector1
我有一些代码,我正在测试一个包装异常,当它失败并且异常传播时,我认为错误消息和回溯不够详细,主要是因为它没有告诉我预期与. 测试,我想要异常和期望的详细信息。 我调整了我的测试(参见下面的示例代码)。
我正在尝试在条件引发自定义异常消息的函数内 assertRaise 异常。 功能: if not Cart.objects.filter(member=member).count(): rai
我遇到了以下相当奇怪的问题: 我正在开发一个 Django 应用程序,在我的模型类中,我定义了一个在验证失败时应该引发的异常: class MissingValueException(Exceptio
我的模型中有以下验证功能: @classmethod def validate_kind(cls, kind): if kind == 'test': raise Valida
我正在尝试在 Python 中对我的“添加”函数运行测试,但出现错误: 7 E ============================================================
我想捕获代码产生的 TypeError,但不幸的是,unittest 失败了: 代码如下: import unittest
我是一名优秀的程序员,十分优秀!