Size: a a a

testing_in_python

2020 June 16

IS

Idi Suda in testing_in_python
Oleg Chaplashkin
Это второй вопрос, насколько это вообще рационально

Сейчас: каждый эндпоинт - отдельный тест-класс(если нужно, касотмный фикстурой)

Логика при реализации была такая:
- покрываем отдельно энопоинты;
- покрываем юзер-кейсы в рамках сущностей(создал-прочитал-обновил-удалил)
- покрываем полноценные сценарии
отдельно эндпоинты могут покрыть бэкеры юнитами
источник

IS

Idi Suda in testing_in_python
второй пункт это подмножество третьего я правильно понимаю?
источник

OC

Oleg Chaplashkin in testing_in_python
Это то, чему я не доверяю
Второй пункт - да, просто взатмодействие идет шире, в рамках с несколькими сущностями
источник

IS

Idi Suda in testing_in_python
Не доверяешь юнитам? Гоняй мутацию на них, доверие появится
источник

СС

Сказочный Сникерс... in testing_in_python
Oleg Chaplashkin
Ребят, а на сколько рационально спускаться на уровень запросов к бд для фикстур классов? К примеру: удаление сущности А.

Сейчас: добавляется сущность А через апи; выполняется удаление и проверки;

Идея: добавлять сущность А в бд; выполнять удаление.

Уровень: интеграционные тесты апи

Система: сложные сущности(~10-14 полей в среднем)

Желание: минимизировать зависимости. (если удаление использует создание, то при фейле на этапе создание не значит, что эндпоинт для удаления - не работает)
Норм
источник

ИС

Игорь Середа... in testing_in_python
Oleg Chaplashkin
Это то, чему я не доверяю
Второй пункт - да, просто взатмодействие идет шире, в рамках с несколькими сущностями
А в чём причина недоверия?
Опасение, что не все кейсы проверены? Или что не всё покрыто тестами?
источник

ИС

Игорь Середа... in testing_in_python
Кейсы очень легко можно ревьюить самому, это не сложно, чтобы держать доверие в актуально состоянии.
источник

ИС

Игорь Середа... in testing_in_python
Для остального есть coverage.
источник

OC

Oleg Chaplashkin in testing_in_python
Игорь Середа
А в чём причина недоверия?
Опасение, что не все кейсы проверены? Или что не всё покрыто тестами?
Не очень строго построенн процесс разработки, я даже не говорю о тестовой документации и документации технической(либо актуальный минимум, либо устаревший максимум)

Наверное стоит сказать, что это стартап, где всего 14 человек из них 3 на серверной части.

В общем,  юниты есть и пишутся, но так как микросервисная архитектура,  доверия к ним нет(не потому что плохие, а потому что требований кот наплакал)
источник

IS

Idi Suda in testing_in_python
Oleg Chaplashkin
Не очень строго построенн процесс разработки, я даже не говорю о тестовой документации и документации технической(либо актуальный минимум, либо устаревший максимум)

Наверное стоит сказать, что это стартап, где всего 14 человек из них 3 на серверной части.

В общем,  юниты есть и пишутся, но так как микросервисная архитектура,  доверия к ним нет(не потому что плохие, а потому что требований кот наплакал)
Попробуй внести на обсуждение дефинишн оф дан для фич, которые будут мержить.
источник

OC

Oleg Chaplashkin in testing_in_python
Пробую потихоньку тащить TDD практику
источник

NV

Nikita Vandyshev in testing_in_python
Подскажите плиз.

https://gist.github.com/nekitvand/bfa37539d1c0c793d6d0343a9289a33f


Есть файл test_1.py, где реализован класс  TestChecklistGeneral с методом test_create_checklist_with_required_field.
В этом классе вызывается фикстура page_builder_for_checklist.

Есть файл test_2,py, где я пытаюсь вызывать метод test_create_checklist_with_required_field из класса TestChecklistGeneral.
Но почему-то фикстура page_builder_for_checklist  - не отрабатывает.

Как будет сделать правильно?
источник

СС

Сказочный Сникерс... in testing_in_python
Nikita Vandyshev
Подскажите плиз.

https://gist.github.com/nekitvand/bfa37539d1c0c793d6d0343a9289a33f


Есть файл test_1.py, где реализован класс  TestChecklistGeneral с методом test_create_checklist_with_required_field.
В этом классе вызывается фикстура page_builder_for_checklist.

Есть файл test_2,py, где я пытаюсь вызывать метод test_create_checklist_with_required_field из класса TestChecklistGeneral.
Но почему-то фикстура page_builder_for_checklist  - не отрабатывает.

Как будет сделать правильно?
зачем ты вызываешь тестовый метод руками?
источник

СС

Сказочный Сникерс... in testing_in_python
конечно фикстура не будет отрабатывать
источник

NV

Nikita Vandyshev in testing_in_python
Этот метод по сути как "преподготовка" к тесту.

Я пробовал через фикстуру на глобальном и локальном уровне. Все так же не работает.
Что делаю не так?
источник

СС

Сказочный Сникерс... in testing_in_python
все делаешь не так)
источник

СС

Сказочный Сникерс... in testing_in_python
нельзя вызывать тестовый метод руками
источник

СС

Сказочный Сникерс... in testing_in_python
если есть предподготовка то вынеси ее в фикстуру и запускай тесты средствами пайтеста
источник

IS

Idi Suda in testing_in_python
Nikita Vandyshev
Подскажите плиз.

https://gist.github.com/nekitvand/bfa37539d1c0c793d6d0343a9289a33f


Есть файл test_1.py, где реализован класс  TestChecklistGeneral с методом test_create_checklist_with_required_field.
В этом классе вызывается фикстура page_builder_for_checklist.

Есть файл test_2,py, где я пытаюсь вызывать метод test_create_checklist_with_required_field из класса TestChecklistGeneral.
Но почему-то фикстура page_builder_for_checklist  - не отрабатывает.

Как будет сделать правильно?
А можно не по делу доебаться?
> assert matcher.has_length_less_than(self.checklists_by_tags.get_all_tags_elements(), 1)


почему не делать
assert len(blabla.get_all_tags_elements()) == 1
?
источник

M

Merg in testing_in_python
import os
os.system(‘pytest -k test_create_checklist_with_required_field’)
источник