gpt4 book ai didi

testing - doctest Phoenix 语境

转载 作者:行者123 更新时间:2023-11-28 20:04:27 25 4
gpt4 key购买 nike

我是 elixir 和 phoenix 的新手,我想对新创建的上下文进行文档测试(使用 mix phx.gen.context)。

我有一个 Accounts 上下文和一个 User 模式。

我在 accounts_test.exs 中添加了以下几行:

alias MyApp.Accounts.User
doctest MyApp.Accounts.User, import: true

甚至修复了默认的 change_user 文档:

-     %Ecto.Changeset{source: %User{}}
+ %Ecto.Changeset{data: %User{}}

但是我还是有很多很多的error和warnings,好像基本上不是用来doctested的...

例如,默认生成的文档是这样的:

iex> update_user(user, %{field: new_value})
{:ok, %User{}}

这会产生:
警告:变量“new_value”不存在,正在扩展为“new_value()”...
警告:变量“user”不存在,正在扩展为“user()”...
test/my_app/accounts_test.exs:45: 未定义函数 new_value/0
test/my_app/accounts_test.exs:45: 未定义函数 user/0

我的问题是:我是否遗漏了什么?或者通常不经常对一个人的上下文进行文档测试(这可以解释为什么它不能开箱即用)

最佳答案

一般来说,我们不会对具有副作用的函数进行 doctest,例如必须读取/写入数据库的上下文函数,因为它们需要一些难以在 doctest 本身中清晰描述的设置。

这当然是可行的,但您应该问问自己是否值得付出努力。 Phoenix 团队本身似乎认为不是。 :)

关于testing - doctest Phoenix 语境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56477645/

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