Conversation
irisqul
left a comment
There was a problem hiding this comment.
✅ Сильные стороны:
- Код запускается без ошибок
- Написанные тесты атомарны, проверяется тело и код отчета, там где это необходимо
- Тестовые данные создаются перед тестом и удаляются после того, как он выполнится
| @pytest.fixture | ||
| def registered_user(client, user_payload): | ||
| response = client.register_user(user_payload) | ||
| assert response.status_code == 200, response.text |
There was a problem hiding this comment.
Нужно исправить: в фикстурах не проводим тестирование, это делает все тесты где используется фикстура неатомарными
|
|
||
| @pytest.fixture | ||
| def user_payload() -> dict: | ||
| return unique_user() |
There was a problem hiding this comment.
Нужно исправить: фикстуры не занимаются прокидыванием данных в тест и выполнением примитивной логики, они выполняют сложную логику предусловий и постусловий и вычислений. Этот метод необходимо напрямую вызывать в тестах и методах
| @pytest.fixture | ||
| def ingredient_ids(client) -> list[str]: | ||
| response = client.get_ingredients() | ||
| assert response.status_code == 200, response.text |
| @allure.title("Создать заказ с авторизацией") | ||
| def test_create_order_with_authorization_success(self, client, registered_user, ingredient_ids): | ||
| _, access_token = registered_user | ||
| response = client.create_order(ingredient_ids, access_token) |
There was a problem hiding this comment.
Нужно исправить: Над каждым логическим методом (запрос через requests) нужно прописать декоратор allure.step
| def test_create_unique_user_success(self, client, user_payload): | ||
| response = client.register_user(user_payload) | ||
| body = response.json() | ||
| try: |
There was a problem hiding this comment.
Нужно исправить: условий и try-except блоков в тестах быть не может, тест всегда однозначен. Если это не вписывается в параметризацию, значит ее быть не должно и это просто несколько отдельных тестовых методов
| assert body["refreshToken"] | ||
| finally: | ||
| if body.get("accessToken"): | ||
| client.delete_user(body["accessToken"]) |
There was a problem hiding this comment.
Можно лучше: супер что очищается БД, но делать это стоит в фикстуре, чтобы даже если в тесте что-то пошло не по плану, Бд всё же осталась в изначальном состоянии
No description provided.