我必須在 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”,第 5 行,在區域回傳(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()
uj5u.com熱心網友回復:
您直接使用方法“area”而不實體化新物件。
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”的圓,然后在其上測驗方法區,問題解決了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389706.html
上一篇:使用querySelectorAll而不是querySelector來測驗toBeInTheDocument
下一篇:如何測驗Laravel管道
