python的assertraises什么意思
答案:2 悬赏:10 手机版
解决时间 2021-03-13 05:43
- 提问者网友:两耳就是菩提
- 2021-03-12 10:58
python的assertraises什么意思
最佳答案
- 五星知识达人网友:酒安江南
- 2021-03-12 11:20
assert,断言。。用于某个地方执行的时候,检查是否满足某种条件
raise,主动抛出异常,让外面的异常检测代码捕捉到,因为这种是主动抛出,一般可以自定义异常提示信息
raise,主动抛出异常,让外面的异常检测代码捕捉到,因为这种是主动抛出,一般可以自定义异常提示信息
全部回答
- 1楼网友:廢物販賣機
- 2021-03-12 12:23
刚才查了,它应该是nose测试框架中的一个测试用例的书写办法。如果没有文档,就看它的源代码。我刚刚下载了nose。
在1.0版本里找到这样一句话。
def raises(*exceptions):
"""test must raise one of expected exceptions to pass.
.....
if you want to test many assertions about exceptions in a single test,
you may want to use `assert_raises` instead.
"""
从含义上看,应该是确保一定要发生异常。而且要用在大量使用assert语言产生异常的条件下。
下面一段更说明问题。
def assert_raises(exception, callable, *args, **kw):
try:
callable(*args, **kw)
except exception, e:
return e
else:
if hasattr(exception, '__name__'):
name = exception.__name__
else:
name = ' or '.join([e.__name__ for e in exception])
assert false, '%s() did not raise %s' % (callable.__name__, name)
usage:
def test_foo():
e = assert_raises(environmenterror, open, '/tmp/notfound')
assert e.errno == errno.enoent 还比如这样子。
import math
import py.test
py.test.raises(overflowerror, math.log, 0)
py.test.raises(valueerror, math.sqrt, -1)
py.test.raises(zerodivisionerror, "1 / 0")
import nose.tools
nose.tools.assert_raises(overflowerror, math.log, 0)
nose.tools.assert_raises(valueerror, math.sqrt, -1)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯