roc*_*BOO 4 testing doctest elixir hashset
我试图通过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
Run Code Online (Sandbox Code Playgroud)
运行时mix test
,我收到以下错误.
Doctest did not compile, got: (TokenMissingError) lib/elirc/channel.ex:99: missing terminator: } (for "{" starting at line 99)
code: %{users: #HashSet<["rockerboo"]>}
Run Code Online (Sandbox Code Playgroud)
第99行是 %{state...
你可以HashSet
用不同的方式构建你,这样它就是一个有效的Elixir表达式.例如,这对我有用:
## Examples
iex> Elirc.Channel.add_user_to_state("rockerboo", %{users: HashSet.new})
%{users: ["rockerboo"] |> Enum.into(HashSet.new)}
Run Code Online (Sandbox Code Playgroud)
这也是Exxtit.DocTest文档在"不透明类型"下推荐的方法
归档时间: |
|
查看次数: |
131 次 |
最近记录: |