2016-05-27 4 views
0

「AttributeError: 'Test Employee'オブジェクトに「increment_salary」属性がありません」というエラーが表示されます。 'increment_salary'は属性ではなくメソッドなので、なぜこのエラーが出るのか分かりませんし、99%は正しく作成していると確信しています。私は検索しました。私が見た唯一の答えは、インデントとスペースのミックスをチェックして、すべてのインデントを3回チェックしました。私はここでコードをコピーする方法に慣れていないので、間違っているかもしれませんが、私はgeanyで正しく行ったと確信しています。'class'オブジェクトに 'method'属性がありません

self.assertEqual(110, self.increment_salary(increase)) 

あなたが代わりにself.employeeでそれを呼び出すために忘れてしまった:

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() 

答えて

2

あなたのTestEmployeeテストケースにincrement_salary()を呼び出そう。以下は例外をスローしません:

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) 

注意。彼らは呼び出し可能な属性です。

+0

完全に機能しました。どうもありがとうございます。 – amazinz5

関連する問題