我正在编写一个 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 中的工作方式一样,其中不联系实际端点? 解决方案不需要特定于破坏的框架,顺便说一句。