出身背景
我有一个库,它使用HTTPoison实现一些需要测试的功能。为了实现这一点,我正在使用
Mox
,我相信这是万能的长生不老药模拟图书馆(尽管还有其他图书馆,但这一个有Jos Valim批准的印章)
问题
一切都很顺利,我在
test_helpers.exs
:
ExUnit.start()
Mox.defmock(HTTPoisonMock, for: HTTPoison)
我设置了我的虚拟测试:
defmodule Alfred.Test.Http.Test do
use ExUnit.Case, async: true
import Mox
# Make sure mocks are verified when the test exits
setup :verify_on_exit!
describe "get" do
test "works on OK" do
HTTPoisonMock
|> get(:get, fn _ -> 1 end)
assert HTTPoisonMock.get(1) == 1
end
end
end
这里的问题是我无法运行它们:
模块HTTPoison不是行为,请将行为传递给:for
模拟合同,而不是实现