Size: a a a

2020 November 11

ŹR

Źmićer Rubinštejn in pro.elixir
Интерфейс на репе и моки
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Жаба way
источник

AB

Alex Bubnov in pro.elixir
У нас в прошлой жизни были сиды, это очень быстро стало неподдерживаемым, это жирная странная база
источник

V

V in pro.elixir
А разве нельзя заливать сиды в конкретном тесте свои?
источник

RK

Roman Kolesnev in pro.elixir
Źmićer Rubinštejn
Интерфейс на репе и моки
когда бизнесу нужно вчера - моки может быть дорого писать =(

Но лучше использовать репу вместо сидов, чтобы потом моки с легкостью воткнуть.
источник

AN

Alexey Novoselov in pro.elixir
V
А разве нельзя заливать сиды в конкретном тесте свои?
это вариант "каждый тест сам себе инициализирует" так как seeds.exs обычно выполняется один раз вместе с ecto.migrate
источник

V

V in pro.elixir
Alexey Novoselov
это вариант "каждый тест сам себе инициализирует" так как seeds.exs обычно выполняется один раз вместе с ecto.migrate
да, но этот вариант делится ещё на два - заливаем сидами или заливаем через внутренние api
источник

AN

Alexey Novoselov in pro.elixir
ну тут да. через внутренее апи хуже, т.к. тесты шаткие-ломкие получаются при изменеии это самого апи
источник

RK

Roman Kolesnev in pro.elixir
Вообще, если пофилосовствовать, то если заливать через внутреннее API сильно дороже, чем писать сиды под конкретные тесты - то что-то не так с внутренним API =)
источник

AN

Alexey Novoselov in pro.elixir
Alexey Novoselov
ну тут да. через внутренее апи хуже, т.к. тесты шаткие-ломкие получаются при изменеии это самого апи
проще через Repo.insert!
источник

IK

Ihor Katkov in pro.elixir
с сидами супер легко выстрелить себе в ногу, когда кодовая база становиться чуть больше маленькой
источник

IK

Ihor Katkov in pro.elixir
когда-то давно, до того как я пришел в эликсир, я работал в проекте, где мы использовали сиды для e2e тестов API
источник

AB

Alex Bubnov in pro.elixir
Или когда сидов больше десятка
источник

IK

Ihor Katkov in pro.elixir
становилось очень больно тогда, когда нужно было поправить/изменить какой-то сид, а он использовался в разных тестах
источник

IK

Ihor Katkov in pro.elixir
поэтому я считаю, что инициализация нужных данных в конкретных тестах
источник

TZ

Trofim Zhugastrov in pro.elixir
@Virviil запинишь плиз?
источник

LL

Lama Lover in pro.elixir
Alexey Novoselov
с сидами async: true хрен получишь, так что сидить лучше самый минимум, типо одно юзера, который везде нужен, но ни в одном тесте не изменяется
Не совсем правда, этим нужно уметь пользоваться
источник

LL

Lama Lover in pro.elixir
Лично мне сиды больше нравятся, потому что они изолируют ошибку по тестам в большом проекте.

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

С сидами упадёт только тест, создающий юзера, что легко поможет найти ошибку
источник

IK

Ihor Katkov in pro.elixir
Lama Lover
Лично мне сиды больше нравятся, потому что они изолируют ошибку по тестам в большом проекте.

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

С сидами упадёт только тест, создающий юзера, что легко поможет найти ошибку
А как же инициализациях данных изолировано в каждом тесте?
источник

LL

Lama Lover in pro.elixir
Ihor Katkov
А как же инициализациях данных изолировано в каждом тесте?
Ну вот у тебя все тесты падают на этапе инициализации. Искать ошибку будет немного душно
источник