David-S-IT / yadjango

Образовательный проект по Django от Интенсивы Академии Яндекса
1 stars 1 forks source link

Улучшить тесты #41

Closed drowsycoder closed 1 year ago

drowsycoder commented 1 year ago

Класс для тестов есть. А уже в общем классе можно и setUp(), где мы бы создали тестовые категорию и тег, и tearDown(), где мы бы убирали мусор (Item, Tag, Category) и заодно обращались к родительскому tearDown() А дальше test_item_validator(), test_item_negative_validator() и т.п.

То есть можешь спокойно заменить классовый метод setUpClass на обычную функцию setUp и после создания своих тестовых сущностей вызвать super(НазваниеТвоегоКлассаСТестами, self).setUp() (можешь почитать об этом)

А рядом не помешает что-то такое:

    def tearDown(self):
        Category.objects.all().delete()
        <и все остальные модельки так же>        

        super(НазваниеТвоегоКлассаСТестами, self).tearDown()

Это и оптимизировать позволит

По тестам ожидается минимально такой набор: def test_item_validator() def test_item_negative_validator() def test_category_validator() def test_category_negative_validator()

drowsycoder commented 1 year ago

Тесты немного запутанные, но ещё как-то можно пропустить

Доразберись с неймингом, например, func_for_tests, func_for_test_item — не говорящие названия, используй глагол и указание на действие/сущность Или test_validation_is_none_correct_model_item_field_text, например: лучше test_item_text_negative_validator(), т.к. сразу видно, что это тест, тестируется айтем (его текст), тест негативного случая

Не забудь про super(CatalogModelsTests, self).setUp() и super(CatalogModelsTests, self).tearDown() в конце def setUp() и def tearDown() соответственно

Ну и в свободное время уже почитаешь, почему не помешает обращаться к родительским методам

drowsycoder commented 1 year ago

Про нейминг остаётся Можно упростить и сделать более чётким и соответствующим тому, что делает функция

David-S-IT commented 1 year ago

нейминг поменял