Unit testing 在python中使用nose进行单元测试

Unit testing 在python中使用nose进行单元测试,unit-testing,nose,Unit Testing,Nose,我已经尝试解决这个问题很久了,但是我想我在某个地方出了错,我无法识别错误 问题: 使用以下规范定义类“圆”: 定义类方法“init”,该方法初始化具有属性“radius”的圆,具有以下限制: “半径””必须是数值。如果不是,则使用错误消息“半径必须是数字”引发TypeError “半径”必须介于0和1000之间,包括两侧。如果不是,则引发ValueError,并显示错误消息“半径必须介于0和1000之间(包括0和1000之间)” 定义类方法“area”,该方法计算圆的面积,并返回舍入为2位

我已经尝试解决这个问题很久了,但是我想我在某个地方出了错,我无法识别错误

问题:

使用以下规范定义类“圆”

  • 定义类方法“init”,该方法初始化具有属性“radius”的圆,具有以下限制:
    • 半径””必须是数值。如果不是,则使用错误消息“半径必须是数字”引发TypeError
    • 半径”必须介于0和1000之间,包括两侧。如果不是,则引发ValueError,并显示错误消息“半径必须介于0和1000之间(包括0和1000之间)”
  • 定义类方法“area”,该方法计算圆的面积,并返回舍入为2位小数的值。提示:使用“数学”模块中的“pi”值
  • 定义类方法“圆周”,该方法计算圆的圆周,并返回舍入到2位小数的值。提示:使用“数学”模块中的“pi”值
定义一个nose测试类“TestingCircleCreation”,该类通过以下测试测试“\uuuu init\uuu”方法的行为:

  • 定义鼻子测试方法“测试创建半径为2.5的圆”,并检查其半径值是否为2.5
  • 定义鼻子测试方法“测试创建半径为负的圆”,该方法在创建半径为-2.5的圆时,检查是否引发ValueError异常,并显示错误消息“半径必须介于0和1000之间(包括0和1000之间)”。提示:使用assert_和with
  • 定义鼻子测试方法“测试创建半径大于半径的圆”,该方法在创建半径为1000.1的圆时,检查是否引发ValueError异常,并显示错误消息“半径必须介于0和1000之间(包括1000之间)”。提示:使用assert_和with
  • 定义鼻子测试方法“测试创建半径为非数字的圆”,该方法检查在创建半径为“hello”的圆时是否引发TypeError异常,并显示错误消息“radius must a number”。提示:使用assert_和with
我试过这个,但它显示出错误

类圆:
定义初始(自身,半径):
#在下面定义初始化方法
自半径=半径
如果不是恒定(自半径,(int,float)):
raise TypeError(“半径必须是数字”)
elif(自半径>1000或自半径

在每个方法中,您都要再次创建一个半径为2.5的圆,然后检查它是否相等。这对于其他方法来说根本不需要。因此,您无法执行异常部分。请尝试上面的代码。

您遇到了什么错误?
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')