протестируйте контекст феникса - PullRequest
2 голосов
/ 06 июня 2019

Я новичок в elixir и phoenix, и я хотел протестировать вновь созданный контекст (используя mix phx.gen.context).

У меня есть Accounts контекст с User схемой.

Я добавил к accounts_test.exs следующие строки:

alias MyApp.Accounts.User
doctest MyApp.Accounts.User, import: true

И даже исправил документацию по умолчанию change_user:

-     %Ecto.Changeset{source: %User{}}
+     %Ecto.Changeset{data: %User{}}

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

Например, сгенерированный по умолчанию документ помещает:

iex> update_user(user, %{field: new_value})
{:ok, %User{}}

Это может привести к:
предупреждение: переменная "new_value" не существует и расширяется до "new_value ()" ...
предупреждение: переменная "пользователь" не существуетсуществует и расширяется до "user ()" ...
test / my_app / accounts_test.exs: 45: неопределенная функция new_value / 0
test / my_app / accounts_test.exs: 45: неопределенная функция user / 0

Мой вопрос: что-то мне не хватает?Или, как правило, не часто проверяют свой контекст (что объясняет, почему он не работает «из коробки»)

1 Ответ

2 голосов
/ 06 июня 2019

Вообще говоря, мы не проверяем функции, которые имеют побочные эффекты, такие как контекстные функции, которые должны считывать / записывать в базу данных, потому что они требуют некоторой настройки, которую трудно изобразить в самом самом doctest.

Это, конечно, выполнимо, но вы должны спросить себя, стоит ли оно усилий. Кажется, сама команда Феникса думает, что это не так. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...