Как смоделировать / заглушить методы в библиотеке Elixir Ecto / Repo? - PullRequest
0 голосов
/ 03 марта 2019

Скажите, пожалуйста, как смоделировать / заглушить методы модуля Repo для моих тестов?

Например:

  link = Repo.get_by(Link, short_url: url)
  db_count = Repo.aggregate(Link, :count, :id)

Мне нужно, чтобы Repo.aggregate вернул 10000000000для моих тестов.То же самое с Repo.get_by.

Как это сделать?

И каков наилучший подход к изоляции модулей в тестах в Elixir?

Спасибо!

1 Ответ

0 голосов
/ 03 марта 2019

Вот пример из https://github.com/gialib/ex_mock readme:

defmodule MyTest do
  use ExUnit.Case, async: false

  import ExMock

  test "test_name" do
    with_mock HTTPotion, [get: fn(_url) -> "<html></html>" end] do
      HTTPotion.get("http://example.com")
      # Tests that make the expected call
      assert called HTTPotion.get("http://example.com")
    end
  end
end
...