请告诉我如何模拟/测试Repo
模块的方法?
例如:
link = Repo.get_by(Link, short_url: url)
db_count = Repo.aggregate(Link, :count, :id)
我需要Repo.aggregate
返回10000000000
进行测试。与Repo.get_by
相同。
如何做到?
在Elixir中进行测试的最佳模块隔离方法是什么?
谢谢!
答案 0 :(得分:1)
这是https://github.com/gialib/ex_mock自述文件中的一个示例:
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