1
저는 현재 Zed A. Shaw의 "Python 어려운 방법 배우기"를하고 있으며 assert_raises를 사용하여 연습 문제 49를 가지고 있습니다. 여기에 내 테스트 파일에서 사용하고있는 코드입니다 :파이썬, 제대로 작동하도록 assert_raises를 얻을 수 없습니다.
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.")
감사합니다. 첫 번째 매개 변수로 Exception을 사용했고 효과가있었습니다 ... 예외적으로 Else에서 예외를 발생 시켰기 때문에 시간이 좀 걸렸습니다. 따라서 ParserError 클래스를보고 깨닫는 것이 예제처럼 "진짜"는 아니 었습니다. 예외를 전달, 나는 그것을 시도하고 그것은 효과가. – Estarius
내가 원하지 않을 수도있는 모든 종류의 것들을 다루기 때문에 나는 'Exception'보다 더 구체적 일 것이다. 'KeyErrors'. –
* * EDIT *에 약간의 코드를 추가했는데 이런 종류의 레이즈로 어떤 종류의 오류가 나에게 돌아올 지 알 수 있습니까? – Estarius