Я прошёл тест на Python Unittest. Я запускаю тесты, но хочу провести отрицательное тестирование и хочу проверить, является ли функция, сгенерировавшая исключение, исключением, она проходит, но если не сгенерировано исключение, тест не пройден. У меня есть скрипт:
try:
result = self.client.service.GetStreamUri(self.stream, self.token)
self.assertFalse
except suds.WebFault, e:
self.assertTrue
else:
self.assertTrue
Это всегда проходит как True, даже когда функция работает отлично. Я также пробовал различные другие способы, включая:
try:
result = self.client.service.GetStreamUri(self.stream, self.token)
self.assertFalse
except suds.WebFault, e:
self.assertTrue
except Exception, e:
self.assertTrue
У кого-нибудь есть предложения?
Спасибо
Я попытался assertRaises без удачи.
try:
result = self.client.service.GetStreamUri(self.stream, self.token)
self.assertRaises(WebFault)
except suds.WebFault, e:
self.assertFalse
except Exception, e:
self.assertTrue
Это все еще проходит. По какой-то причине он не пытается выполнить оператор assertRaises
. Я также пытался: (Функция должна завершиться ошибкой, но тест должен пройти)
try:
result = self.client.service.GetStreamUri(self.stream, self.token)
except suds.WebFault, e:
self.assertFalse
except Exception, e:
self.assertTrue
else:
self.assertFalse
По какой-то причине, даже если функция проходит, она не вызывает ошибку. Это всегда независимо от того, что идет в исключения. Если только нет другого утверждения, тогда это идет к этому.
Нашел способ, который работает, но он кажется очень плохим:
Кто-нибудь может предложить более чистый способ сделать это?
try:
result = self.client.service.GetStreamUri(self.stream, self.token)
except suds.WebFault, e:
self.assertFalse
except Exception, e:
pass
try:
result==result
except:
result=None
if result==None:
assert True
else:
assert False