永发信息网

python 测试急救!在线等

答案:2  悬赏:60  手机版
解决时间 2021-03-07 16:28
  • 提问者网友:浩歌待明月
  • 2021-03-07 10:02
class ParserError(Exception):
pass

def peek(word_list):
if word_list:
word = word_list[0]
return word[0]
else:
return None

def parse_verb(word_list):
if peek(word_list) != 'verb':
raise ParserError("Expected a verb next.")

文件名为parser.py 要用assert_raises() 来测试这个错误
下面是我写的:
assert_raises(parser.ParserError("Expected a verb next."), parser.parse_verb(word_list),
word_list = [('noun', 'dog')] )

可是出错了,求指点,该咋办???
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-03-07 10:20
你在做learn python the hardway吧。鼓励一个!
assert_raises的参数:第一个参数是错误类型,仅错误的class名称就可以,即parser.ParserError

第二个参数仅是函数名称,即parser.parse_verb

第三个参数是向测试函数传递的参数,即[('noun', 'dog')]

所以,测试语句是:
assert_raises(parser.ParserError, parser.parse_verb, [('noun', 'dog')] )

祝你成功!
全部回答
  • 1楼网友:未来江山和你
  • 2021-03-07 10:46
你将leixicon.scan改成leixicon().scan 再试试应该可以了。可能是类没有实例化。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯