[英]AttributeError in python unit-test circle
我必須對 python 中的圓進行單元測試,但我終生無法弄清楚為什么會出現此錯誤:
回溯(最近一次通話最后):
文件“c:\Users\User\Desktop\Domaci\Preadvanje 8\circle_unittest.py”,第 6 行,在 test_area self.assertEqual(circle.area (2),12.564) 文件“c:\Users\User\Desktop\ Domaci\Preadvanje 8\class_circle.py", line 5, in area return (self.radius * self.radius) * 3.141 AttributeError: 'int' object has no attribute 'radius'
圈子代碼:
class circle:
def __init__(self,radius):
self.radius = radius
def area(self):
return (self.radius * self.radius) * 3.141
def perimeter(self):
return (2 * self.radius) * 3.141
r = int(input("Input r: "))
newcircle = circle(r)
print ("Area of the circle is: ", newcircle.area())
print("Perimeter of the circle is: ", newcircle.perimeter())
測試代碼:
import unittest
from unittest.case import TestCase
from class_circle import circle
class test_circle(unittest.TestCase):
def test_area(self):
self.assertEqual(circle.area (2),12.564)
def test_perimeter(self):
self.assertEqual(circle.perimeter(2), 12.564)
if __name__ == '__main__':
unittest.main()
您直接使用方法“area”而不實例化新的 object。
class test_circle(unittest.TestCase):
def test_area(self):
c = circle(2)
self.assertEqual(c.area (2),12.564)
def test_perimeter(self):
c = circle(2)
self.assertEqual(c.perimeter(2), 12.564)
在上面的代碼中,我們先創建了一個叫做“c”的圓圈,然后在上面測試方法區,這樣就解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.