是否可以在ExUnit测试中存根(模拟?)Ecto.UUID.generate?

时间:2015-05-07 06:33:56

标签: unit-testing elixir ecto

我使用Ecto.UUID.generate在用户模型上创建随机令牌。

在我的 ExUnit 测试中,我想测试调用创建路径的控制器,但是因为令牌总是随机的,所以我无法确定性地测试结果。

理想情况下,我希望能够在我的测试中存储 Ecto.UUID.generate,因此它始终会创建相同的 UUID ,以便我可以正确测试响应。

谢谢:)

1 个答案:

答案 0 :(得分:4)

在Elixir和Erlang中有一些模拟解决方案,但它们并没有被大量使用。如果您对此感兴趣,请参阅以下文章:http://blog.29steps.co.uk/post/105715556278/testing-api-web-calls-in-elixir-using-meck

老实说,我会避免模仿。如果您有API,请测试返回的ID是否为UUID(您可以查看Ecto.UUID.dump(uuid)是否返回{:ok, something})。如果它是一个浏览器/ html应用程序,你很可能更关心UUID。