Существует ли эквивалент Ruby WebMock для языка Lua?
У меня есть модуль Lua, который я пишу для отправки запросов в публичный API:
- users.lua локальный http = require("socket.http") local base_url = 'http://example.com' local api_key = "secret" локальные пользователи = {} функция users.info(user_id) local request_url = base_url .. '/users/' .. user_id .. "?api_key=" .. api_key печать ("Запрос".. request_url) локальный ответ = http.request(request_url) печать ("Ответ".. ответ) обратный ответ конец возвращать пользователей
Это работает, но я бы хотел использовать TDD для завершения написания всей оболочки API.
У меня есть спецификация (с использованием Busted Framework), которая работает, но она делает фактический запрос к API:
- spec/users_spec.lua package.path = "../?.lua;" .. package.path описать ("Пользователи", функция () это ("должен получить информацию о пользователях", функция () локальные пользователи = требуют ("пользователи") local s = spy.on(пользователи, "информация") users.info("chip0db4") assert.spy(users.info).was_called_with("chip0db4") конец) конец)
Как мне это сделать, так же, как работает WebMock в Ruby, где с реальной конечной точкой не связываются? Решение не должно быть специфичным для Busted Framework, кстати.
1 ответ
После получения отличных отзывов от https://github.com/TannerRogalsky, как показано здесь https://gist.github.com/TannerRogalsky/b56bc886811f8f0a9d2a, я решил написать собственную библиотеку-макет для запросов http: https://github.com/chip/webmock. Это очень рано, но это, по крайней мере, начало. Я был бы признателен за вклад в репо или предложение о других подходах или доступных модулях Lua.