from Employee import Employee print(Employee.num_of_employees) employee_1 = Employee('Luke', 'Skywalker', 100) print(Employee.num_of_employees) print(employee_1.pay) print(employee_1.__dict__) employee_1.raise_amount = 1.05 employee_1.apply_raise() print(employee_1.pay) print(employee_1.__dict__) employee_2 = Employee('Dane', 'Jones', 1000) print(Employee.num_of_employees) for i in Employee.employee_list: print(i.pay)
class TestEmployy(unittest.TestCase): # Ran once before all other code # Useful if want to do something once, but too costy # to do before every test # Tests should always be isolated @classmethod def setUpClass(cls): print('setUpClass') # Ran once at the end after all other code @classmethod def tearDownClass(cls): print('tearDownClass') # Will run code before every single test def setUp(self): print('setUp') self.emp_1 = Employee('Corey', 'Schafer', 50000) self.emp_2 = Employee('Sue', 'Smith', 60000) # Will run code after every single test. Example: closing or deleting databases etc. def tearDown(self): print('tearDown\n') pass def test_email(self): print('test_email') self.assertEqual(self.emp_1.email, '*****@*****.**') self.assertEqual(self.emp_2.email, '*****@*****.**') # Checks if name changed as reflected in email self.emp_1.first = 'John' self.emp_2.first = 'Jane' self.assertEqual(self.emp_1.email, '*****@*****.**') self.assertEqual(self.emp_2.email, '*****@*****.**') def test_fullname(self): print('test_fullname') self.assertEqual(self.emp_1.fullname, 'Corey Schafer') self.assertEqual(self.emp_2.fullname, 'Sue Smith') self.emp_1.first = 'John' self.emp_2.first = 'Jane' self.assertEqual(self.emp_1.fullname, 'John Schafer') self.assertEqual(self.emp_2.fullname, 'Jane Smith') def test_apply_raise(self): print('test_apply_raise') self.emp_1.apply_raise() self.emp_2.apply_raise() self.assertEqual(self.emp_1.pay, 52500) self.assertEqual(self.emp_2.pay, 63000) def test_monthly_schedule(self): with patch('employee.requests.get') as mocked_get: mocked_get.return_value.ok = True mocked_get.return_value.text = 'Success' schedule = self.emp_1.monthly_schedule('May') mocked_get.asset_called_with('http://company.com/Schafer/May') self.assertEqual(schedule, 'Success') mocked_get.return_value.ok = False mocked_get.return_value.text = 'Bad Response!' schedule = self.emp_2.monthly_schedule('June') mocked_get.asset_called_with('http://company.com/Smith/June') self.assertEqual(schedule, 'Bad Response!')
class TestEmployee(unittest.TestCase): @classmethod def setUpClass(cls): #demonstrating that this is run at the beginning of testing print('setupClass') @classmethod def tearDownClass(cls): #demonstrating that this is run at the end of testing print('teardownClass') def setUp(self): #run before each test self.emp_1 = Employee('John', 'Dwyer', 50000) self.emp_2 = Employee('Maddie', 'Wall', 65000) def tearDown(self): #run after each test pass def test_email(self): self.assertEqual(self.emp_1.email, '*****@*****.**') self.assertEqual(self.emp_2.email, '*****@*****.**') self.emp_1.first = 'Jon' self.emp_2.first = 'Madds' self.assertEqual(self.emp_1.email, '*****@*****.**') self.assertEqual(self.emp_2.email, '*****@*****.**') def test_fullname(self): self.assertEqual(self.emp_1.fullname, 'John Dwyer') self.assertEqual(self.emp_2.fullname, 'Maddie Wall') self.emp_1.first = 'Jon' self.emp_2.first = 'Madds' self.assertEqual(self.emp_1.fullname, 'Jon Dwyer') self.assertEqual(self.emp_2.fullname, 'Madds Wall') def test_apply_raise(self): self.emp_1.apply_raise() self.emp_2.apply_raise() self.assertEqual(self.emp_1.pay, 52500) self.assertEqual(self.emp_2.pay, 68250) def test_monthly_schedule(self): with patch('Employee.requests.get') as mocked_get: mocked_get.return_value.ok = True mocked_get.return_value.text = 'Success' schedule = self.emp_1.monthly_schedule('December') mocked_get.assert_called_with( 'http://yourcompany.com/Dwyer/December') self.assertEqual(schedule, 'Success') mocked_get.return_value.ok = False schedule = self.emp_2.monthly_schedule('April') mocked_get.assert_called_with('http://yourcompany.com/Wall/April') self.assertEqual(schedule, 'Bad Response!')
class TestEmployee(unittest.TestCase): #przyklad testowania klasy @classmethod def setUpClass( cls ) -> None: #to odpala sie raz przy inicjalizacji danego modulu testowego pass @classmethod def tearDownClass( cls ) -> None: #to odpala sie raz przy zakonczeniu danego modulu testowego pass def setUp( self ): #to jest build in ktory odpala sie przed kazdym testem (kazdym jednym) self.emp_1 = Employee('Dawid', 'Oberda', 5000) self.emp_2 = Employee('Jan', 'Kowalski', 5510) def tearDown( self ): #to jest build in ktory odpala sie po kazdym tescie (kazdym jednym) pass def test_mail(self): self.assertEqual(self.emp_1.mail, '*****@*****.**') self.assertEqual(self.emp_2.mail, '*****@*****.**') self.emp_1.first = 'Mateusz' self.emp_2.last = 'Nowak' self.assertEqual(self.emp_1.mail, '*****@*****.**') self.assertEqual(self.emp_2.mail, '*****@*****.**') def test_fullname(self): self.assertEqual(self.emp_1.fullname, 'Dawid Oberda') self.assertEqual(self.emp_2.fullname, 'Jan Kowalski') self.emp_1.first = 'Mateusz' self.emp_2.last = 'Nowak' self.assertEqual(self.emp_1.fullname, 'Mateusz Oberda') self.assertEqual(self.emp_2.fullname, 'Jan Nowak') def test_applyRaise(self): self.emp_1.apply_raise() self.emp_2.apply_raise() self.assertEqual(self.emp_1.pay, 5250) self.assertEqual(self.emp_2.pay, 5785.5) #Ten test polega na udawaniu jakiejsc rzeczy. np. strony internetowej i zwraca wartosci ktore mu podamy aby #sprawdzic dzialanie kodu a nie np. dostepnosc danej strony def test_monthly_schedule(self): with patch( 'Employee.requests.get' ) as mocked_get: #trzeba jako argument bezposrednio podac klase w ktorej jest to co testujemy # test jezeli request zwroci True mocked_get.return_value.ok = True #tutaj definiujemy jakie wartosci ma zwrocic mocked_get.return_value.text = 'Sucess' #tutaj definiujemy jakie wartosci ma zwrocic schedule = self.emp_1.monthly_schedule('May') mocked_get.assert_called_with( 'http://company.com/Oberda/May' ) #sprawdzanie czy zostanie wywolana odpowiednia strona self.assertEqual(schedule, 'Sucess') #przeprowadzamy test #test jezeli request zwroci false mocked_get.return_value.ok = False schedule = self.emp_1.monthly_schedule('May') mocked_get.assert_called_with('http://company.com/Oberda/May') self.assertEqual(schedule, 'Bad Response')
class TestEmployee(unittest.TestCase): # Definiamo il metodo SetUpClass(cls) che verrà richiamato prima # dell'esecuzione dei test @classmethod def setUpClass(cls): print('Setup Class') # Definiamo il metodo tearDownClass(cls) che verrà richiamato alla fine # dell'esecuzione dei test @classmethod def tearDownClass(cls): print('\nTearDown Class') # Definiamo il metodo setUp(self) per inizializzare gli oggetti # da utilizzare durante l'esecuzione dei test def setUp(self): print("Setting up the objects...") self.emp_1 = Employee("John", "Doe", 50000) self.emp_2 = Employee("Sue", "Smith", 60000) # Definiamo il metodo tearDown(self) per distruggere gli oggetti # utilizzati durante l'esecuzione dei test def tearDown(self): print("tearDown\n") print("Destroying the objects...\n") pass # Definiamo il metodo test_email(self) per testare che il valore restituito # dalla funzione email sia effettivamente [email protected] def test_email(self): print("test_email") self.assertEqual(self.emp_1.email(), '*****@*****.**') self.assertEqual(self.emp_2.email(), '*****@*****.**') # Proviamo a cambiare nome da John a Corey e da Sue a Jane # per avere una ulteriore conferma che l'email restituita è ancora [email protected] self.emp_1.first = "Corey" self.emp_2.first = "Jane" self.assertEqual(self.emp_1.email(), '*****@*****.**') self.assertEqual(self.emp_2.email(), '*****@*****.**') # Definiamo il metodo test_fullname(self) per testare che il valore restituito # dalla funzione fullname sia effettivamente Nome Cognome def test_fullname(self): print("test_fullname") self.assertEqual(self.emp_1.fullname(), 'John Doe') self.assertEqual(self.emp_2.fullname(), 'Sue Smith') # Proviamo a cambiare nome da John a Corey e da Sue a Jane # per avere una ulteriore conferma che il nome completo restituito # sia Nome Cognome self.emp_1.first = "Corey" self.emp_2.first = "Jane" self.assertEqual(self.emp_1.fullname(), 'Corey Doe') self.assertEqual(self.emp_2.fullname(), 'Jane Smith') # Definiamo il metodo test_apply_raise(self) per testare che il valore restituito # dalla funzione apply_raise sia il valore attuale * il valore definito nella # variabile raise_amt def test_apply_raise(self): print("test_apply_raise") self.emp_1.apply_raise() self.emp_2.apply_raise() # L'oggetto emp_1 ha come paga base 50000 che moltiplicato * 1,05 dovrebbe essere # uguale a 52500 # L'oggetto emp_2 ha come paga base 60000 che moltiplicato * 1,05 dovrebbe essere # uguale a 63000 self.assertEqual(self.emp_1.pay, 52500) self.assertEqual(self.emp_2.pay, 63000)