Вопросы по теме 'ex-unit'

Эликсир assert_raise не перехватывает исключения
Я написал этот тестовый пример: assert_raise ArgumentError, myFn(a,b) но он не оценивает так, как я ожидал. myFn вызывает ошибку ArgumentError ( do: raise ArgumentError ), но assert_raise ее не перехватывает. Пример в документации...
3344 просмотров
schedule 11.01.2024

Как тестировать модели с необходимыми ассоциациями
Использование Экто 2.0: defmodule PlexServer.BoardInstanceTest do use PlexServer.ModelCase alias PlexServer.BoardInstance @valid_attrs %{board_pieces: [%PlexServer.BoardTileInstance{x: 0, y: 0}], empire: %PlexServer.EmpireInstance{}}...
1419 просмотров
schedule 28.05.2023

Делегирование методов тестирования в Elixir
У меня есть два модуля: defmodule Base.ModuleOne do def do_stuff(opts) do "some stuff with opts" end end defmodule Base.ModuleTwo do defdelegate do_stuff(opts), to: Base.ModuleOne end Каков правильный способ тестирования...
330 просмотров
schedule 15.12.2022

Тестирование Ecto 2.0 в зонтичном приложении
Я пытаюсь настроить приложение под эгидой, которое будет обрабатывать бизнес-логику. Он использует Ecto для взаимодействия с базой данных. У меня проблемы с настройкой SQL.Sandbox для тестирования. Всякий раз, когда я запускаю тест, я получаю эту...
789 просмотров
schedule 30.09.2022

Как я могу протестировать многострочный вывод в Elixir?
Как я могу протестировать следующий код? ["one", "two", "three"]) |> Enum.each(&IO.puts(&1)) one two three :ok Мой тест в настоящее время выглядит так, но он терпит неудачу, потому что IO.puts возвращает :ok , а не строки, и,...
715 просмотров
schedule 20.04.2023

Как протестировать канал с помощью Phoenix.ChannelTest.close/2
У меня есть тест, который запускает сокетное соединение, подписывается и присоединяется к теме. Затем я отправляю сообщение в канал, который выполняет некоторую работу и сохраняет некоторые данные. Затем я использую ChannelTest.close/2 в сокете,...
473 просмотров

Как очистить базу данных с помощью Repo
В частности, у меня есть приложение Phoenix, использующее Ecto и Repo. Я хотел бы очищать свою базу данных после запуска каждого теста Exunit, который изменяет базу данных. Один из способов сделать это — запустить все функции change в миграции в...
369 просмотров

Примеры тестов очистки ExUnit
У меня есть следующие тесты в приложении phoenix: defmodule TattooBackend.Web.API.V1.PasswordControllerTest do use TattooBackend.Web.ConnCase, async: true use Bamboo.Test alias TattooBackend.Web.Endpoint alias...
457 просмотров
schedule 17.05.2023

Простое тестирование авторизации Phoenix вошедшим в систему пользователем
Из этого учебник по простой аутентификации Я хочу проверить маршруты приложения внутри :login_required конвейер (который просто проверяет, вызвал ли клиент Guardian.Plug.sign_in(conn, user) ) Поскольку действие user_path show...
584 просмотров

Ecto Sandbox использует проверенное соединение для существующего процесса
У меня есть приложение Phoenix Test со схемой продукта. У меня есть GenServer, запущенный главным супервизором приложения, который получает список продуктов с помощью handle_call. def handle_call(:get_products, _from, _state) products =...
978 просмотров
schedule 04.03.2022

В Эликсире как имитировать временные сбои
Я издеваюсь над HTTP-вызовом (используя Tesla) с Mox следующим образом: test "Token expiry is handled by re-applying for a token on the fly", %{conn: conn} do TeslaMock |> expect(:call, 8, fn env, _opts -> case env.url do...
249 просмотров
schedule 06.06.2023

Циклическая зависимость в тестовых примерах
У меня есть три приложения в настройке зонтичного проекта Уровень данных Апислой OtherLayer Другой слой (обязательно) Теперь у меня есть такие зависимости, определенные в микс-файле. Приложение ApiLayer имеет {:OtherLayer,...
216 просмотров

ExUnit вызывает пустую ошибку с блоком setup_all
У меня есть тест, который требует предварительно вставленных данных. Поэтому я пытаюсь настроить эти данные с помощью обратного вызова setup_all , поскольку эти данные можно настроить один раз. Поскольку я не хочу ничего присваивать контексту,...
28 просмотров
schedule 06.07.2022

Валлаби с безголовым Chrome вылетает
Я разрабатываю приложение на основе Elixir и Phoenix, которое также использует приложение Wallaby для тестирования на основе HTTP в безголовом браузере Chrome. Недавно я получаю довольно громоздкое сообщение об ошибке при выполнении моих тестов...
413 просмотров

Как в Elixir ExUnit гарантировать, что Supervisor создаст новый GeNserver?
Учусь тестить в Эликсире и вот такая проблема появилась: Когда я запускаю следующий тест, иногда он проходит, а иногда нет, я думаю, что это связано с тем, что у супервизора нет времени перезапустить GenServer: test "Supervisor will revive...
267 просмотров
schedule 12.01.2023

Как я могу использовать doctest Эликсира для тестирования реализации протокола?
Я хочу иметь возможность тестировать реализацию протокола в Elixir. Вот пример кода: defprotocol Size do def size(data) end defmodule Foo do defstruct [] defimpl Size do @doc """ ## Examples iex>...
188 просмотров
schedule 04.07.2023

Как добавить в вывод ExUnit информацию о неудачных тестах
Функция ExUnit.Callbacks.setup моих тестов создает идентификатор, который я хочу включить в вывод ExUnit в случае сбоя теста. Есть ли простой способ сделать это? Я знаю, что мог бы написать собственный ExUnit.Formatter, но это кажется излишним....
84 просмотров
schedule 12.05.2023

Ecto утверждает #Ecto.Association.NotLoaded‹ассоциация: xyz не загружена›
Обычно я проверяю, возвращает ли мой тест ожидаемый результат, например так: company = company_fixture() # inserts a company in the database with default attributes assert Profile.get_company!(company.id) == company Но это не удается...
297 просмотров
schedule 26.01.2023