gpt4 book ai didi

在 doctest 中测试哈希集

转载 作者:行者123 更新时间:2023-11-28 19:51:05 24 4
gpt4 key购买 nike

我正在尝试通过 iex 使用 doctest 测试 HashSet。如果我运行下面的行,它会给出相同的结果,但是 #HashSet<["rockerboo"]>}无法在语法中表示。我想不出一种正确表示它的方法,也找不到任何例子。谢谢!

  @doc """
Adds user to HashSet in state

## Examples
iex> Elirc.Channel.add_user_to_state("rockerboo", %{users: HashSet.new})
%{users: #HashSet<["rockerboo"]>}
"""
def add_user_to_state(user, state) do
%{state | users: HashSet.put(state.users, user) }
end

运行时mix test ,我收到以下错误。

 Doctest did not compile, got: (TokenMissingError) lib/elirc/channel.ex:99: missing terminator: } (for "{" starting at line 99)
code: %{users: #HashSet<["rockerboo"]>}

第 99 行是 %{state...

最佳答案

您可以用不同的方式构造您的HashSet,使其成为一个有效的 Elixir 表达式。例如,这对我有用:

## Examples
iex> Elirc.Channel.add_user_to_state("rockerboo", %{users: HashSet.new})
%{users: ["rockerboo"] |> Enum.into(HashSet.new)}

这也是 ExUnit.DocTest documentation 推荐的方法在“不透明类型”下

关于在 doctest 中测试哈希集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com