Тестирование при помощи assert — задача 2

Протестируйте методы programmer_define() и age_define()  класса Contact.

Тестировать нужно все состояния: в метод programmer_define() надо по очереди передать False и True, а в age_define() надо проверить все возрастные категории.

Для проверки всех возможных вариантов создайте несколько экземпляров класса Contact с разными значениями полей year_birth и is_programmer.

Подсказка:
Создайте несколько экземпляров класса Contact, в каждом экземпляре задайте разные значения для year_birth и is_programmer.

Для каждого экземпляра напишите отдельный assert, вызывая проверяемый метод и сравнивая возвращаемое значение с ожидаемым.

Код:

class Contact:
    def __init__(self, name, year_birth, is_programmer):
        self.name = name        
        self.year_birth = year_birth        
        self.is_programmer = is_programmer

    def age_define(self):
        if 1946 < self.year_birth < 1980:
            return 'Олдскул'
        if self.year_birth >= 1980:
            return 'Молодой'
        return 'Старейшина'

    def programmer_define(self):
        if self.is_programmer:
            return 'Программист'
        return 'Нормальный'

    def show_contact(self):
        return(f'{self.name}, '              
               f'возраст: {self.age_define()}, '
               f'статус: {self.programmer_define()}')

    def print_contact(self):
        print(self.show_contact())

test_old_none_programmer = Contact('Пушкин', 1945, True) 
assert test_old_none_programmer.age_define() == 'Старейшина',('Ошибка')
    
test_old_none_programmer = Contact('Пушкин', 1947, True) 
assert test_old_none_programmer.age_define() == 'Олдскул',('Ошибка')
    
test_old_none_programmer = Contact('Пушкин', 1981, True) 
assert test_old_none_programmer.age_define() == 'Молодой',('Ошибка')
    
test_old_none_programmer = Contact('Пушкин', 1945, True) 
assert test_old_none_programmer.programmer_define() == 'Программист',('Нормальный')
    
test_old_none_programmer = Contact('Пушкин', 1945, False) 
assert test_old_none_programmer.programmer_define() == 'Нормальный',('Программист')
    
# Создайте экземпляр класса Contact с необходимыми параметрами
# Например, test_old_none_programmer = Contact('Пушкин', 1799, False).
# Напишите assert, и в нём проверьте, 
# что метод programmer_define() этого экземпляра возвращает строку "Нормальный"
# Во втором assert проверьте, возвращает ли метод age_define() значение "Старейшина"

# Затем создайте другой экземпляр с другими параметрами
# И в assert проверьте, вернут ли и его методы ожидаемый результат.

# Создайте столько экземпляров, сколько нужно, 
# чтобы через разные assert проверить все методы во всех вариантах.




Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: