我编写了代码来测试 Circle
类方法 circumference()
和 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()
关于python - 单元测试不会运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55837892/