Python 单元测试获胜';t运行测试
我编写代码是为了测试Python 单元测试获胜';t运行测试,python,Python,我编写代码是为了测试Circle类方法percentry()和area()是否返回正确的输出。当单元测试类运行时,它表示已经运行了0个测试 class Circle: def __init__(self, r=1): self.radius = r def serRadius(self, r): self.radius = r def getRadius(self): return self.radius def area(self): re
Circle
类方法percentry()
和area()
是否返回正确的输出。当单元测试类运行时,它表示已经运行了0个测试
class Circle:
def __init__(self, r=1):
self.radius = r
def serRadius(self, r):
self.radius = r
def getRadius(self):
return self.radius
def area(self):
return 3.14 * self.radius * self.radius
def circumference(self):
return 2 * 3.14 * self.radius
import unittest
from Circle import Circle
class TestCircleMethods(unittest.TestCase):
def setUp(self):
print('\nsetUP')
circle = Circle(self, r=1)
def tearDown(self):
print('tearDown\n')
def test_area(self):
print('Test Area\n')
assertEqual(circle.area(), 3.14)
def test_circumference(self):
print('Test Cirumference\n')
assertEqual(circle.circumference(), 6.28)
if __name__ == '__main__':
unittest.main()
您在测试中的一些地方缺少了
self
。另外,Circle(self,r=1)
应该是Circle(r=1)
。缩进似乎也错了,但我不确定在复制粘贴代码时是否发生了这种情况。你也可以再检查一遍
这项工作:
class Circle:
def __init__(self, r=1): self.radius = r
def serRadius(self, r): self.radius = r
def getRadius(self): return self.radius
def area(self): return 3.14 * self.radius * self.radius
def circumference(self): return 2 * 3.14 * self.radius
import unittest
class TestCircleMethods(unittest.TestCase):
def setUp(self):
print('\nsetUP')
self.circle = Circle(r=1)
def tearDown(self):
print('tearDown\n')
def test_area(self):
print('Test Area\n')
self.assertEqual(self.circle.area(), 3.14)
def test_circumference(self):
print('Test Cirumference\n')
self.assertEqual(self.circle.circumference(), 6.28)
if __name__ == '__main__':
unittest.main()
assertEqual
基本上是unittest.TestCase
的类实例方法。因此,您必须将它们称为self.assertEqual
任何实例方法的第一个参数都是隐式的,因此无需像调用Circle
,Circle=Circle(self,r=1)
的构造函数那样自行传递。它应该是circle=circle(r=1)
有了所有这些修复,您要测试的代码应该通过所有测试
卷轴
ciricle_test.py
class Circle:
def __init__(self, r=1):
self.radius = r
def setRadius(self, r):
self.radius = r
def getRadius(self):
return self.radius
def area(self):
return 3.14 * self.radius * self.radius
def circumference(self):
return 2 * 3.14 * self.radius
import unittest
from circle import Circle
class TestCircleMethods(unittest.TestCase):
def setUp(self):
print('\nsetUP')
self.circle = Circle(1)
def tearDown(self):
print('tearDown\n')
def test_area(self):
print('Test Area\n')
self.assertEqual(self.circle.area(), 3.14)
def test_circumference(self):
print('Test Cirumference\n')
self.assertEqual(self.circle.circumference(), 6.28)
if __name__ == '__main__':
unittest.main()