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”值
- 定义鼻子测试方法“测试创建半径为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')