【发布时间】:2019-09-12 04:58:43
【问题描述】:
我正在尝试在 Lua 中使用 Busted(我没有编写,目前由于业务原因我也不允许重构)对代码进行单元测试,并且这个类模块中没有任何概念,也没有依赖注入。所以,我想用一个模拟记录器替换文件顶部所需的一些模块,即local log = require("path.to.module.logger"):new(),用于跟踪方法被调用的次数,即logger:trace(),例如@987654324 @ 在 Java 中的 Mockito 中。在 Java 中,我可以为此目的使用 Reflection.Utils。 Lua 中的什么等价物可以帮助使这个不可测试的代码可测试?
我已经尝试创建一个具有相同变量名称 log 的全局变量,并使用此示例将其设置为等于我的模拟:https://www.lua.org/pil/14.2.html
本地 _M = {}
本地日志 = require("path.to.module.logger"):new()
...
函数 _M.init(...) log:trace("debug") # 我希望这个日志实例不是上面的那个,而是我在运行时注入到模块中的那个 结束
【问题讨论】: