在长生不老药中创建一个假的或虚拟的 pid

Creating a fake or dummy pid in elixir

在 erlang 中,可以创建一个与进程不对应的 pid。可以在 here 学习一些 Erlang 中找到使用它的示例。

pid(0,250,0).

有没有办法在长生不老药中做同样的事情? 我现在得到的关闭是创建一个立即终止并使用该 pid 的进程。

fake_pid = Process.spawn(fn -> end)

这看起来有点乱,我不确定从未创建的 pid 和死的 pid 之间是否存在细微差别。

您可以使用 pid/3 Erlang function directly in Elixir:

:c.pid(0,250,0)

此外 - 只是来自 Erlang 文档:

Converts X, Y, Z to the pid . This function should only be used when debugging.

出于您的目的,我将使用测试代码中的 self()。这将解决进程 运行 当前测试用例。

如果您出于某种原因需要测试另一个 pid,您使用 Process.spawn/1 的方式非常好,因为它确保 pid 不被占用(并且不指向系统中重要的东西)并且它已经死了(或者还活着,如果你在测试期间保持它活着的话)。

Erlang :c.pid/3 或新的 Elixir 1.1 IEx.Helpers.pid/3 仅作为 shell.

中使用的便利函数