我正在编写一个 Lua 模块,用于向公共 API 发出请求:
--users.lua
本地 http = 要求(“socket.http”)
本地 base_url = 'http://example.com'
本地 api_key = "秘密"
本地用户 = {}
函数 users.info(user_id)
本地 request_url = base_url .. '/users/' .. user_id .. "?api_key=" .. api_key
打印(“请求” .. request_url)
本地响应 = http.request(request_url)
打印(“响应” ..响应)
返回响应
结尾
回头客
这可行,但我想使用 TDD 来完成整个 API 包装器的编写。
我有一个可以工作的规范(使用破坏的框架),但它向 API 发出了实际请求:
-- 规范/users_spec.lua
package.path = "../?.lua;" .. 包路径
描述(“用户”,函数()
it("应该获取用户信息", function()
本地用户 = 要求(“用户”)
本地 s = spy.on(用户,“信息”)
users.info("chip0db4")
assert.spy(users.info).was_call_with("chip0db4")
结尾)
结尾)
我如何模拟它,就像WebMock在 Ruby 中的工作方式一样,其中不联系实际端点? 解决方案不需要特定于破坏的框架,顺便说一句。