很长一段时间以来,我一直在试图解决这个问题,但是我想错了,我无法识别错误。
问题:
定义具有以下规范的类“ 圆”:
定义鼻子测试类“ TestingCircleCreation ”,该类通过以下测试来测试“ __ init __ ”方法的行为:
我已经尝试过,但是显示错误。
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')
答案 0 :(得分:0)
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):
with assert_raises(ValueError):
Circle(-2.5)
def test_creating_circle_with_greaterthan_radius(self):
with assert_raises(ValueError):
Circle(1000.1)
def test_creating_circle_with_nonnumeric_radius(self):
with assert_raises(TypeError):
Circle('hello')
您将在每种方法中再次创建一个半径为2.5的圆,然后检查其是否相等。其他方法根本不需要。因此,您将无法执行异常部分。尝试上面的代码。