내 단위 테스트에서 assertRaises를 사용하여 특정 예외 발생을 테스트합니다. 내가 캡처해야 일부 예외 비록 단위 테스트에서 assertRaises와 함께 errno 사용
assertRaises(IOError, testToRun, passedValues)
특정 오류 번호 (errno는), 그래서 대신 기본 예외를 수집의 그 예외에 관한 특정 오류 번호를 캡처하고 싶습니다.
try:
testToRun(passedValues)
except IOError, e:
if e.errno == 2:
pass
else:
raise
확실 해요 - : 내가 사용하고 specificly 번호 예외를 캡처 할 때 이런 식으로 뭔가, 그것은 분명히 :)
assertRaises(IOError.errno(2), testToRun, passedValue)
이 해결하기 위해 작동하지 않습니다하지만 그것은 완벽하지는 않지만 작동하지만 assertRaises를 사용하여 같은 일을 할 수 있는지 궁금해했다.
감사합니다. 그런 다음
def assertRaisesErrNo(self, exc, errno, f, *args, **kwargs):
try:
self.assertRaises(exc, f, *args, **kwargs)
except IOError, e:
if e.errno == errno:
pass
else:
raise
unittest.TestCase.assertRaisesErrNo = assertRaisesErrNo
다른 assert
처럼 사용
with self.assertRaises(SomeException) as cm:
do_something()
the_exception = cm.exception
self.assertEqual(the_exception.error_code, 3)
답장을 보내 주셔서 감사합니다. 나는 컨텍스트 관리자에 익숙하지 않지만 그것에 대해 읽을 것이다. – user788462