[英]AttributeError 'class name' object has no attribute 'method'
[英]'class' object has no attribute 'method'
我收到一个错误“ AttributeError:'Test Employee'对象没有属性'increment_salary'”。 不知道为什么会收到此错误,因为'increment_salary'是一种方法,而不是属性,并且我99%的确定自己创建正确。 我已经搜索过,唯一看到的答案就是检查缩进和空格的混合情况,因此我仔细检查了每个缩进,并进行了三次检查。 这可能是错误的,因为我不熟悉如何在此处复制代码,但是我确信我在geany中做得正确。
import unittest
class Employee():
"""stores and updates info for each employee"""
def __init__(self, first_name, last_name, salary):
self.first_name = first_name
self.last_name = last_name
self.salary = salary
def update_salary(self, new_salary):
self.salary = new_salary
def increment_salary(self, increase):
self.salary += increase
class TestEmployee(unittest.TestCase):
def setUp(self):
first_name = 'first'
last_name = 'last'
pay_name = 100
self.employee = Employee(first_name, last_name, pay)
def test_update_salary(self):
new_salary = 110
self.employee.update_salary(self.new_salary)
self.assertEqual(self.new_salary, self.update_salary)
def test_raise(self):
increase = 10
self.employee.increment_salary(increase)
self.assertEqual(110, self.increment_salary(increase))
unittest.main()
您尝试在您的TestEmployee
测试用例上调用increment_salary()
:
self.assertEqual(110, self.increment_salary(increase))
您忘记了在self.employee
上调用它。 以下内容不会引发异常:
self.assertEqual(110, self.employee.increment_salary(increase))
但是断言将失败,因为Employee.increment_salary()
始终返回None
。 您要测试在测试中将salary
属性设置为什么:
def test_raise(self):
increase = 10
self.employee.increment_salary(increase)
self.assertEqual(110, self.employee.salary)
注意方法也是属性。 它们是可调用的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.