Я тестирую модуль радиуса круга, используя фреймворк unittest на Python. Если радиус не является числовым значением, я создаю исключение с помощью специального сообщения.
Файл: circle.py
class Circle():
def __init__(self, radius):
if not isinstance (radius, (int,float)):
raise TypeError('radius must be a number')
else:
self.radius = radius
Файл: test_circle.py
import unittest
from circle import Circle
class CircleTest(unittest.TestCase):
def test_radius(self):
c1 = Circle(2.5)
self.assertEqual(c1.radius, 2.5)
def test_radius_type(self):
self.assertRaises(TypeError, Circle, 'hello')
if __name__ == "__main__":
unittest.main()
Теперь я могу проверить возникшее исключение. Но я также хочу узнать, является ли сообщение, переданное в исключении, точным сообщением или нет. Может ли кто-нибудь посоветовать мне, как протестировать и проверить сообщение, переданное в исключении в unittest в Python?
type
; используйтеif isinstance(radius, (int, float))
. - person chepner   schedule 06.04.2020