Можно ли заглушить (издеваться?) Ecto.UUID.generate в тесте ExUnit?

Я использую Ecto.UUID.generate для создания случайного токена на пользовательской модели.

В моем тесте ExUnit я хочу протестировать контроллер, который вызывает маршрут создания, однако, поскольку токен всегда случайный, я не могу детерминистически проверить результат.

В идеале я хочу иметь возможность заглушить Ecto.UUID.generate в моем тесте, чтобы он всегда создавал тот же UUID , чтобы я мог правильно проверить ответ.

Спасибо:)

4 голоса | спросил TheStoneFox 7 Mayam15 2015, 09:33:55

1 ответ


0

В Elixir и Erlang есть решения для насмешек, но они не так часто используются. Если вам интересно, вот статья: http://blog.29steps.co.uk/post/105715556278/testing-api-web-calls-in-elixir-using-meck

Честно говоря, я бы просто избегал насмешек. Если у вас есть API, проверьте возвращаемый идентификатор как UUID (вы можете увидеть, если Ecto.UUID.dump(uuid) вернет {:ok, something}). Если это браузерное /html-приложение, скорее всего, вы заботитесь о UUID еще меньше.

ответил José Valim 7 Maypm15 2015, 12:23:41

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132