是否可以在 ExUnit 测试中存根(模拟?)Ecto.UUID.generate?
Is it possible to stub(mock?) Ecto.UUID.generate in an ExUnit test?
我正在使用 Ecto.UUID.generate
在用户模型上创建随机标记。
在我的 ExUnit 测试中,我想测试调用创建路由的控制器,但是因为令牌总是随机的,所以我无法确定地测试结果。
理想情况下,我希望能够 stub 我的测试中的 Ecto.UUID.generate
所以它总是创建相同的 UUID这样我就可以正确地测试响应了。
谢谢:)
Elixir 和 Erlang 中有模拟解决方案,但用得不多。如果您有进一步的兴趣,这里有一篇文章:http://blog.29steps.co.uk/post/105715556278/testing-api-web-calls-in-elixir-using-meck
老实说,我会避免模拟。如果你有一个API,测试返回的ID是一个UUID(你可以看看是否Ecto.UUID.dump(uuid)
returns {:ok, something}
)。如果它是一个 browser/html 应用程序,您可能更不关心 UUID。
我正在使用 Ecto.UUID.generate
在用户模型上创建随机标记。
在我的 ExUnit 测试中,我想测试调用创建路由的控制器,但是因为令牌总是随机的,所以我无法确定地测试结果。
理想情况下,我希望能够 stub 我的测试中的 Ecto.UUID.generate
所以它总是创建相同的 UUID这样我就可以正确地测试响应了。
谢谢:)
Elixir 和 Erlang 中有模拟解决方案,但用得不多。如果您有进一步的兴趣,这里有一篇文章:http://blog.29steps.co.uk/post/105715556278/testing-api-web-calls-in-elixir-using-meck
老实说,我会避免模拟。如果你有一个API,测试返回的ID是一个UUID(你可以看看是否Ecto.UUID.dump(uuid)
returns {:ok, something}
)。如果它是一个 browser/html 应用程序,您可能更不关心 UUID。