Skip to content

Task_1#724

Open
Splayt wants to merge 2 commits intoYandex-Practicum:mainfrom
Splayt:develop1
Open

Task_1#724
Splayt wants to merge 2 commits intoYandex-Practicum:mainfrom
Splayt:develop1

Conversation

@Splayt
Copy link

@Splayt Splayt commented Mar 8, 2026

Задание 1

Задание 1
Copy link

@irisqul irisqul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Сильные стороны:

  • Код запускается без ошибок
  • Обеспечено необходимое тестовое покрытие

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: в директории tests хранятся только тесты и conftest, все остальное должно быть в корне



class TestBun:
@pytest.mark.parametrize("bun_data", BUNS_DATA)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно лучше: для параметризации используют данные которые отличаются друг от друга, например принадлежат к разным классам эквивалентости (либо тестируют границы одного класса) и имеют одинаковый ОР. Твой список - это по сути один и тот же класс, нам не нужно проверять его много раз на самом деле. Можно было бы попробовать вводить латиницу, нелатиницу, с цифрами, с спецсимволами. Хотя у нас нет четких требований о валидации, мы все таки можем их предположить.

bun = Bun(bun_data["name"], bun_data["price"])
assert bun.get_name() == bun_data["name"]

@pytest.mark.parametrize("bun_data", BUNS_DATA)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно лучше: надежнее тестировать параметр при остальных неизменных. Например тут тестируем цену, значит в параметризации должна меняться только цена, а имя быть всегда одинаковым. в других случаях - аналогично

return ingredient


@pytest.fixture
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить здесь и далее: нам не нужны фикстуры чтобы получить статичные данные, нужно перенести в константы и просто получать по имени, а не вызывать функции.

assert empty_burger.bun is None

def test_burger_initialization_ingredients_empty(self, empty_burger):
assert len(empty_burger.ingredients) == 0
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Можно лучше: мы тестируем не атрибуты экземпляров класса или наполнение базы данных, а методы приложения. Необходимо добавить шаги в которых будут использованы методы и проверить результат.

empty_burger.add_ingredient(mock_ingredient_sauce)
empty_burger.add_ingredient(mock_ingredient_filling)
empty_burger.move_ingredient(test_data["index"], test_data["new_index"])
assert empty_burger.ingredients[0] == mock_ingredient_sauce if test_data["expected_order"][0] == 0 else mock_ingredient_filling
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: условий в тестах быть не может, тест всегда однозначен. Если это не вписывается в параметризацию, значит ее быть не должно и это просто несколько отдельных тестовых методов

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants