Модульное тестирование с использованием носа в python - PullRequest
0 голосов
/ 17 марта 2020

Я долго пытался решить эту проблему, но где-то я ошибся, я думаю, и не могу определить ошибку.

Проблема:

Определите класс ' Circle ' со следующими характеристиками:

  • Определите метод класса ' init ', который инициализирует круг с атрибутом 'radius' со следующими ограничениями:
    • ' radius ' должно быть числовым c значением. В противном случае выведите TypeError с сообщением об ошибке «радиус должен быть числом».
    • ' radius ' должен быть в диапазоне от 0 до 1000 включительно с обеих сторон. Если нет, вызовите ValueError с сообщением об ошибке «радиус должен быть от 0 до 1000 включительно».
  • Определите метод класса ' area ', который вычисляет площадь круг и возвращает значение, округленное до 2 десятичных знаков. Подсказка: используйте значение 'pi' из модуля 'math'.
  • Определите метод класса ' окружность ', который вычисляет окружность круга и возвращает округленное значение до 2 десятичных знаков. Подсказка: используйте значение 'pi' из модуля 'math'.

Определите класс проверки носа ' TestingCircleCreation ', который проверяет поведение ' __init __ 'метод со следующими тестами:

  • Определить метод теста носа' test_creating_circle_with_numeric_radius ', который создает круг с радиусом 2.5 и проверяет, является ли его значение радиуса 2.5.
  • Определение метода проверки носа ' test_creating_circle_with_negative_radius ', который проверяет, возникает ли исключение ValueError с сообщением об ошибке «радиус должен быть от 0 до 1000 включительно», при создании круга радиуса -2,5. Подсказка: используйте assert_raises и with.
  • Определите метод проверки носа ' test_creating_circle_with_greaterthan_radius ', который проверяет, возникает ли исключение ValueError с сообщением об ошибке «радиус должен быть между 0 и 1000 включительно» при создании круга радиуса 1000.1. Подсказка: используйте assert_raises и с помощью
  • Определите метод проверки носа ' test_creating_circle_with_nonnumeric_radius ', который проверяет, возникает ли исключение TypeError с сообщением об ошибке «радиус должен быть числом», при создании круга радиуса «привет». Подсказка: используйте assert_raises и с.

Я пробовал это, но он показывает ошибку.

class Circle:

def __init__(self, radius):
    # Define the initialization method below
    self.radius=radius
    if not isinstance(self.radius,(int,float)):
        raise TypeError("radius must be a number")
    elif(self.radius>1000 or self.radius<0):
        raise ValueError("radius must be between 0 and 1000 inclusive")
    else:
        pass
def area(self):
    # Define the area functionality below
    return math.pi*(self.radius**2)
def circumference(self):
    return 2*math.pi*self.radius
    # Define the circumference functionality below
class TestingCircleCreation:
def test_creating_circle_with_numeric_radius(self):
    c1=Circle(2.5)
    assert c1.radius==2.5

def test_creating_circle_with_negative_radius(self):
    c1=Circle(2.5)
    assert c1.radius==2.5
    with assert_raises(ValueError):
        Circle(-2.5)


def test_creating_circle_with_greaterthan_radius(self):
    c1=Circle(2.5)
    assert c1.radius==2.5
    with assert_raises(ValueError):
        Circle(1000.1)

def test_creating_circle_with_nonnumeric_radius(self):
    c1=Circle(2.5)
    assert c1.radius==2.5
    with assert_raises(TypeError):
        Circle('hello')
...