私は現在、Zed A. Shaw の「Learn Python the Hard Way」を行っており、assert_raises を使用した演習 49 でかなりの問題を抱えています。テストファイルで使用しているコードは次のとおりです。
def test_parseVerb():
assert_raises("ParserError",parser.parse_verb,[('stop', 'the'),
('noun', 'bear')])
そして、これはPowerShellが私に与えているエラーです:
======================================================================
ERROR: tests.parser_tests.test_parseVerb
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\MrnMicro\Python27\lib\site-packages\nose\case.py", line 197, in runTest
self.test(*self.arg)
File "C:\Documents and Settings\sthma2\Documents\LPTHW\Projects\ex48\tests\parser_tests.py", line 37, in test_parseVer
b
assert_raises("ParserError",parser.parse_verb,fail_list)
File "C:\MrnMicro\Python27\lib\unittest\case.py", line 476, in assertRaises
callableObj(*args, **kwargs)
File "C:\MrnMicro\Python27\lib\unittest\case.py", line 117, in __exit__
if not issubclass(exc_type, self.expected):
TypeError: issubclass() arg 2 must be a class or tuple of classes
----------------------------------------------------------------------
Ran 10 tests in 0.016s
FAILED (errors=1)
正直なところ、何が起こっているのかわかりません。誰かがそれを助けることができれば、大歓迎です!
ありがとう !
編集
def parse_verb(word_list):
skip(word_list, 'stop')
if peek(word_list) == 'verb':
return match(word_list, 'verb')
else:
raise ParserError("Expected a verb next.")