В моем приложении есть GenServer, который может создавать другие процессы.Все идентификаторы процессов сохраняются в списке.
def create_process do
GenServer.call(__MODULE__, :create_process)
end
def handle_call(:create_process, _from, processes) do
{:ok, pid} = SomeProcess.start_link([])
{:reply, {:ok, pid}, [pid | processes]}
end
Также есть функция для получения списка идентификаторов PID.
def get_processes do
GenServer.call(__MODULE__, :get_processes)
end
def handle_call(:get_processes, _from, processes) do
{:reply, processes, processes}
end
Я пытался написать тест для get_processes
вот так:
@doc """
iex> {:ok, pid} = MainProcess.create_process()
iex> MainProcess.get_processes()
[pid]
"""
Однако, похоже, что бегущий тест не видит переменную pid, и я получаю ошибку undefined function pid/0
.Я знаю, что это может быть просто решено с помощью обычного теста, но я хочу знать, что это можно решить в doctest.