Описание тега ex-unit

ExUnit - это библиотека модульного тестирования, которая входит в состав стандартной библиотеки Elixir.
1 ответ

Передача сообщений с состоянием [:pid] завершается неудачно, только что созданный pid работает

Мой второй тест не пройден. 1) test it jumps when it can (RunnerTest) test/runner_test.exs:15 No message matching %{y: 1} after 100ms. The process mailbox is empty. stacktrace: test/runner_test.exs:18: (test) defmodule RunnerTest do use ExUnit.Case …
17 окт '16 в 16:13
0 ответов

Как проверить функцию, которая преобразует один тип файла в другой

Я работаю над небольшим приложением escript, которое конвертирует форматы электронных книг (.pdf, .epub) в .mobi формат для использования на Kindle, и мне интересно, как (используя ExUnit) я могу проверить, что преобразование прошло успешно, без фак…
21 ноя '16 в 08:26
1 ответ

Как реализовать какую-либо команду до запуска теста ExUnit с некоторым тегом

У меня есть набор тестов, который использует wallaby библиотека, которая нуждается в тяжелой сборке webpack для использования. Проблема в том, что эта сборка веб-пакета слишком тяжелая, чтобы использовать ее, например, перед тестированием только мод…
20 сен '16 в 02:47
1 ответ

Написание документов для тестирования, когда структура возвращается

Ответ на подобный вопрос имеет этот вопрос. Чтобы протестировать функцию с помощью doctests, вы должны быть в состоянии предсказать вывод вашей функции. вопрос Как упомянуто в названии, я хотел бы использовать doctests, но это, похоже, не работает, …
17 авг '18 в 10:28
1 ответ

Можно ли не загружать ассоциации после вставки с ExMachina?

Я использую ex_machina для создания прибора для моих юнит-тестов. Я сохраняю некоторые записи в базе данных, используя ExMachina insert(:comment) но мои утверждения неверны, потому что ExMachina всегда загружает отношения, и это не тот случай, когда…
13 авг '18 в 05:54
1 ответ

Elixir/ExUnit: как наиболее элегантно протестировать функции с системными вызовами?

ситуация Обычно модульные тесты, такие как ExUnit, должны быть автономными с вводом, вызовом функции и желаемым выходом, чтобы тест мог выполняться в любой системе и всегда тестировался корректно, независимо от среды. С другой стороны, если ваше при…
1 ответ

Могу ли я разделить вспомогательные модули на разные файлы, используя ExUnit с Mix?

Пара неудачных попыток, и приведенная здесь документация заставляет меня поверить, что я должен либо определить вспомогательные модули в test/test_helper.exs или в одном из других test/*.exs файлы, вложенные в модуль (что use ExUnit.Case) в моем сме…
25 дек '18 в 20:41
1 ответ

В этом модуле тестирования ExUnit, почему здесь вызывается ExUnit.Server.modules_loaded()?

Итак, при запуске ExUnit с устаревшей опцией, почему эта строка ExUnit.Server.modules_loaded() называется? Я думаю, что эта линия Kernel.ParallelCompiler.require(test_files, parallel_require_callbacks) требуется, чтобы тестовые файлы ex_unit могли р…
29 дек '18 в 20:08
1 ответ

Wallaby с безголовыми сбоями Chrome

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

Почему объекты, вставленные в базу данных в блоке setup_all, не отображаются в тестовом блоке?

У меня есть аналогичные тесты в контроллерах и тому setup_all вставки доступны в тестовых блоках. Здесь я пытаюсь разрешить то же самое в моих моделях, и я не могу заставить его работать. У меня есть тест следующим образом: defmodule Faq.QuestionTes…
23 дек '16 в 23:01
1 ответ

Проверить код состояния с помощью ExUnit не удалось, но фактический тест REST успешно

Я пишу функцию контроллера, где он будет проверять условие (ключевое слово, чтобы быть действительным), прежде чем либо визуализировать объект json, либо объект ошибки в случае неудачи. router.ex scope "/api", DongNghiaWeb do pipe_through :api scope…
20 июл '18 в 04:14
1 ответ

Как я могу проверить многострочный вывод в Elixir?

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

Примеры тестов Cleanup ExUnit

У меня есть следующие тесты в приложении Phoenix: defmodule TattooBackend.Web.API.V1.PasswordControllerTest do use TattooBackend.Web.ConnCase, async: true use Bamboo.Test alias TattooBackend.Web.Endpoint alias TattooBackend.Accounts.Account alias Ta…
04 июл '17 в 19:21
0 ответов

ExUnit - запуск кода установки БД один раз, перед всеми тестами

Доброе утро, В моем проекте Elixir у меня есть особенно дорогой код установки базы данных, который вставляет необходимые данные в базу данных. В настоящее время мои тесты работают так, что эти данные вставляются до любых тестов, которые нуждаются в …
18 ноя '16 в 16:29
0 ответов

Разница между "именованным контекстом" и "тегами" в ExUnit

В ExUnit есть только один уровень вложенности для организации тестов. Я пришел из Ruby on Rails и часто использовал RSpec, поэтому я привык к большему количеству уровней вложенности. Кроме того, ESpec для эликсира позволяет больше уровней вложенност…
06 сен '17 в 11:03
1 ответ

Тайм-аут запроса Force Hackney в тесте

Я ищу способ воспроизвести тайм-аут запроса HTTP POST Hackney в одном из тестов моего контроллера. Я также использую ExVCR, но это, похоже, не позволяет вам принудительно установить тайм-аут запроса. Я пытался установить время ожидания Hackney равны…
20 сен '18 в 18:46
1 ответ

Невозможно установить SyntaxError в ExUnit

Вот код, который я тестирую: defmodule BracketParser do @spec parse_line(binary) :: binary def parse_line(line), do: parse_line_as_list(String.graphemes(line), false, []) defp parse_line_as_list([], true, _acc) do IO.puts("hello") raise SyntaxError …
05 апр '18 в 23:43
1 ответ

Как я могу указать формат в Phoenix.ConnTest?

У меня довольно простой код в контроллере Phoenix. Он делает некоторые вещи и возвращает контент в зависимости от формата: def delete(conn, _params) do # some stuff here if get_format(conn) == "json" do conn |> put_status(200) |> json(%{}) els…
19 сен '16 в 13:11
1 ответ

Обработка ошибок для больших запросов и отправка 413 ответа

У меня есть функция загрузки голосовых заметок. Я писал тесты, и как часть этого я написал следующий тест для больших файлов, где я хочу, чтобы он выдавал ошибку слишком большого размера 413: test "send VN fail when too large", %{conn: conn} do Couc…
04 ноя '18 в 14:24
1 ответ

Почему params_for не проходит через набор изменений?

Почему params_for не проходит через модель изменений - это главный вопрос. Параметр params_for генерирует 4 цифры и 2 буквы для почтового индекса (может быть строчным или прописным). Если params_for будет проходить через набор изменений, то впоследс…
12 сен '17 в 13:14